
مُعيد إنتاج لـ CVE-2026-46590: إلغاء التسلسل غير الآمن لدورة حياة المفاتيح في Apache Camel camel-pqc (ترحيل ملف .key القديم عبر ObjectInputStream في FileBasedKeyLifecycleManager)، معالجة غير كاملة لـ CVE-2026-40048 (تم الإصلاح في 4.18.3/4.21.0)
مستنسخات قابلة للتشغيل كدليل على المفهوم لنفس ثغرة Apache Camel، واحدة لكل بيئة تشغيل:
| بيئة التشغيل | الدليل | المكدس |
|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.2.0 + camel-pqc 4.18.2 |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.36.0 + Camel Quarkus 3.36.0 (يضم Camel 4.20.0) |
كلا الإصدارين متأثران (تم الإصلاح في 4.18.3 / 4.21.0)، ويظهران العيب نفسه:
يحتفظ FileBasedKeyLifecycleManager بالمفاتيح ما بعد الكمومية كـ PKCS#8/X.509 JSON، ولكنه لا يزال يهاجر ملفات المفاتيح قديمة (المسلسلة بلغة Java) مرة أخرى باستخدام ObjectInputStream الخام وبدون ObjectInputFilter — بقايا التصحيح غير المكتمل لـ CVE-2026-40048. يعود getKey(keyId) إلى migrateLegacyKey()، الذي يقوم بإلغاء تسلسل ملف <keyId>.key المزروع من قبل المهاجم؛ التحويل إلى KeyPair يحدث فقط بعد عودة readObject()، لذا فإن الكائن المصمم ينفذ أولاً (CWE-502).
كل دليل فرعي هو مشروع قائم بذاته مع Dockerfile و docker-compose.yml و README الخاصة به. باختصار، لأي منهما:
cd camel-spring-boot # or: cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down
تنبيه: https://camel.apache.org/security/CVE-2026-46590.html
هذه المستنسخات مقدمة للبحث الأمني والاختبار المصرح به فقط، لثغرة مكشوفة للعموم ومصلحة. لا تستخدمها ضد أنظمة دون إذن صريح.
| الخاصية | القيمة |
|---|
| المكون | camel-pqc |
| الفئة المتأثرة | org.apache.camel.component.pqc.lifecycle.FileBasedKeyLifecycleManager#migrateLegacyKey (و migrateLegacyMetadata)، بالإضافة إلى النظيرات HashicorpVault / AwsSecretsManager |
| CWE | CWE-502 (إلغاء تسلسل بيانات غير موثوقة) |
| التأثير | تنفيذ تعليمات برمجية في تطبيق إدارة المفاتيح عند قراءة قيمة مفتاح/بيانات وصفية قديمة |
| الإصدارات المتأثرة | من 4.18.0 قبل 4.18.3، ومن 4.19.0 قبل 4.21.0 (لا توجد مديري مفاتيح camel-pqc قبل 4.16.0، لذا لا يتأثر 4.14.x) |
| الإصدارات المعدلة | 4.18.3, 4.21.0 |
| JIRA | CAMEL-23726 (PR apache/camel#23912، النقل الخلفي #23914) |
| الفضل | Yu Bao (PayPal) |