Ghostscript vulnerability vë në rrezik ngarkimet PDF
Një Ghostscript vulnerability e rregulluar në versionin 10.08.0 mund të lejojë që një PDF i krijuar posaçërisht të shkaktojë code execution në disa konfigurime serverësh që i kthejnë PDF-të e ngarkuara në previews ose thumbnails. Artifex publikoi Ghostscript build të rregulluar më 8 shtator 2026, pasi Wordfence Threat Intelligence, duke përdorur Wordfence Argus, raportoi flaw gjashtëmbëdhjetë ditë më herët. Çështja gjurmohet si CVE-2026-39919, me një rezultat Common Vulnerability Scoring System prej 9.8 nga 10 për CVSS 3.1 dhe 9.3 për CVSS 4.0.
Ghostscript është një document engine, pra software që lexon skedarë PDF dhe PostScript dhe i konverton faqet në imazhe për previewing, printing ose display. Shumë pronarë site-sh nuk e instalojnë kurrë drejtpërdrejt dhe mund të mos e dinë që është i pranishëm, sepse mjete të tjera e thërrasin në background. Në WordPress, core ka qenë në gjendje që nga versioni 4.7 të krijojë një imazh nga faqja e parë e një PDF kur gjenerohet metadata e attachment. Në serverë që përdorin PHP Imagick extension, WordPress thërret ImageMagick, dhe ImageMagick pastaj nis Ghostscript. Zinxhiri është WordPress, Imagick, ImageMagick, Ghostscript.
Wordfence raportoi se bug nuk është në WordPress ose në form plugin të përdorur për testim. WordPress dhe plugin ishin vetëm rruga përmes së cilës PDF arriti te Ghostscript. Një form që thjesht ruan një file të ngarkuar pa kërkuar preview nuk e nis Ghostscript. Një form që e shton file në Media Library mund ta nisë kur WordPress ndërton një preview, nëse software i kërkuar dhe policy settings janë në vend. Stock WordPress nuk i lejon vizitorët anonimë të ngarkojnë PDF në Media Library, kështu që vetëm një container i cenueshëm nuk mjafton për një sulm anonim.
Flaw është një heap buffer overflow, një memory error ku një program shkruan më shumë të dhëna në një zonë të rezervuar sesa mund të mbajë ajo zonë. Wordfence thotë se path i cenueshëm është JPEG 2000 decoding path i Ghostscript kur OpenJPEG decoder është i pranishëm. Imazhet JPEG 2000 përbëhen nga components, si brightness ose transparency, dhe këto components mund të kenë resolutions të ndryshme dhe të përdorin më pak se tetë bits për sample. Në test case minimal publik të përshkruar nga Wordfence, një rresht ka 1,024 two-bit samples. Ghostscript rezervon saktë 256 bytes, por loop që mbush rreshtin shkruan 1,024 bytes, një byte për sample, në vend që të paketojë katër samples në çdo byte.
Ai overflow shkruan 768 bytes shtesë për rresht përtej buffer. Wordfence thotë se këta bytes vijnë nga image samples të zgjedhura nga krijuesi i file, me kufizime nga image format dhe packing loop i Ghostscript, dhe mund të korruptojnë memory-management data që Ghostscript përdor më vonë. Test PDF publik ishte 1,029 bytes dhe ndryshonte nga një control file i padëmshëm me një byte në një field që përshkruan resolution të transparency component. Të dy files ishin PDF të vlefshme që përmbanin imazhe të vlefshme JPEG 2000, kështu që kontrollimi vetëm i file extensions, MIME types ose basic file structure nuk do ta identifikonte rastin e rrezikshëm.
Wordfence thotë se e ktheu memory corruption në unauthenticated remote code execution në një deployment testues WordPress të ndërtuar posaçërisht. Remote code execution do të thotë që një attacker mund ta bëjë serverin të ekzekutojë code. Unauthenticated do të thotë se nuk nevojitet login. Code ekzekutohet me permissions të account që përpunon PDF, jo automatikisht si account më i fuqishëm i system. Wordfence gjithashtu zbuloi se -dSAFER sandbox i Ghostscript, një mode i synuar të kufizojë atë që documents mund të bëjnë përmes supported features, nuk e parandaloi këtë memory-corruption bug.
Rreziku praktik është serioz, por jo identik për çdo site. Wordfence ndërtoi dy proof-of-concept exploits për lab build e vet, pastaj i ekzekutoi 10,240 herë në dhjetë mjedise të tjera Linux package në systeme Intel dhe AMD 64-bit: Debian, Ubuntu, Fedora, AlmaLinux, Alpine, dhe official WordPress container. Asnjë exploit nuk funksionoi jashtë matching build, ndërsa të dy vazhduan të funksiononin në atë build. Kur Wordfence mbajti të njëjtin Ghostscript executable, por ndryshoi fonts, language settings, font configuration dhe një core system library, i njëjti exploit prapë pati sukses në të katër setup-et, megjithëse jo në çdo përpjekje.
Kjo do të thotë se ky nuk është një PDF i vetëm që komprometon automatikisht çdo server të cenueshëm. Do të thotë gjithashtu se build-specific exploitation nuk është i padëmshëm. Wordfence iu referua kërkimit HEIF Heist të Hacktron si një paralajmërim të rëndësishëm: Hacktron përdori AI-assisted exploit development për të kthyer një heap overflow në libheif në code execution kundër forumit Discourse të OpenAI, dhe raportoi code execution ose data exposure në shërbime dhe produkte të tjera, përfshirë aplikacionet Next.js. Hacktron raportoi se përshtatja e një exploit për çdo kompani të re zakonisht zgjaste një ose dy ditë, dhe disa përpjekje kërkonin mijëra imazhe të ngarkuara. Wordfence tha se nuk ka gjetur prova publike që CVE-2026-39919 po shfrytëzohet sot.
Versionet upstream Ghostscript të prekura janë 9.21 deri në 10.07.1 ku OpenJPEG decoder path është i pranishëm. CVE record e deklaron intervalin e prekur si para 10.08.0, dhe Wordfence thotë se vulnerable sub-byte sampling block u prezantua në 9.21. Fix i Artifex në Ghostscript 10.08.0 e ndryshon loop në mënyrë që të numërojë samples saktë dhe të refuzojë bit depths që ky code path nuk i mbështet. Administratorët nuk duhet të mbështeten vetëm te `gs --version`, sepse Linux distributions mund ta backport fix në numra versionesh më të vjetër. Ubuntu 22.04, për shembull, e rregulloi këtë në package 9.55.0~dfsg1-0ubuntu5.14, i cili ende raporton Ghostscript 9.55.0.
Wordfence testoi dhjetë package environments më 15 shtator dhe i gjeti të gjitha të cenueshme në atë kohë: official WordPress Docker image me 10.05.1~dfsg-1+deb13u1, Debian 13 trixie me të njëjtin package, Debian 12 bookworm me 10.0.0~dfsg-11+deb12u8, Ubuntu 22.04 LTS me 9.55.0~dfsg1-0ubuntu5.13, Ubuntu 24.04 LTS me 10.02.1~dfsg1-0ubuntu7.8, Ubuntu 26.04 me 10.06.0~dfsg-3ubuntu1, Fedora 44 me 10.06.0-2.fc44, AlmaLinux 10 me 10.02.1-16.el10_0, Alpine 3.22 me 10.05.1-r0, dhe Alpine 3.23 me 10.06.0-r0. Test PDF rrëzoi Ghostscript në nëntë nga dhjetë systeme. Debian 12 e rendered atë file pa crash, por 28 nga 40 variante me image-dimension të ndryshuara e rrëzuan.
Që nga ato teste, Wordfence thotë se fixed packages janë dërguar për Ubuntu 22.04, 24.04 dhe 26.04, Debian 13 përmes security repository të tij, dhe AlmaLinux 10 më 2 tetor. Debian 12 mbeti i listuar si i cenueshëm. Deri më 9 tetor, official package pages për Fedora 44, Alpine 3.22 dhe Alpine 3.23 ende listonin revisions më të vjetra nga test table. Containerized sites kërkojnë kujdes të veçantë: Wordfence thotë se snapshot i official WordPress Docker image që testoi kishte Ghostscript 10.05.1, Imagick extension dhe një PDF preview path funksional. Përdoruesit duhet të tërheqin një updated base image, të rebuild pa u mbështetur në cached layer, dhe të redeploy.
Për pronarët e site-ve, pyetja kryesore është nëse vizitorët ose përdoruesit me privilegje të ulëta mund të ngarkojnë PDF që më pas konvertohen në previews.