Egy közel három évtizede rejtőző memóriaolvasási hiba a Squid Proxy szoftverben lehetővé teszi, hogy egy támadó más felhasználók hitelesítő adatait, munkamenet-tokenjeit és HTTP-kéréseit olvassa ki. A CVE-2026-47729 azonosítójú sérülékenységet Squidbleed névre keresztelték, és a 2014-es Heartbleed sebezhetőséghez hasonló mechanizmuson alapul.
A sérülékenység forrása egy 1997-ben bekerült kódsor, amelyet a NetWare FTP-szerverek sajátos könyvtárlistázási formátumának kezelésére írtak. Ezek a szerverek négy szóközt helyeztek az időbélyeg és a fájlnév közé (a szokásos egy helyett), amelyet a parser egy strchr hívásokra épülő whitespace-kihagyó ciklussal dolgozott fel.
A hiba lényege a következő: ha az FTP-könyvtárbejegyzésből hiányzik a fájlnév az időbélyeg után, a copyFrom mutató a string lezáró null-bájtjára (\0) kerül. A C szabvány szerint azonban a strchr nem NULL-t ad vissza, ha a keresett karakter maga a null-bájt, hanem visszaadja a null-bájtra mutató pointert. Emiatt a ciklus leállás helyett tovább fut. A strchr overread átlép a null terminálón, és visszaküldi az attacker számára az adatot „fájlnévként” az FTP-könyvtárlistában.
A kiszivárogtatható adatok köre:
- HTTP Authorization fejlécek (cleartext jelszavak)
- Munkamenet-tokenek (session cookies)
- API kulcsok
- Hitelesítési sütik
- Egyéb érzékeny HTTP fejlécek
- Érintett környezetek és támadási feltételek
A sebezhetőség kihasználásához két feltétel szükséges:
- A Squid cleartext HTTP forgalmat kezel, vagy TLS forgalmat fejt vissza
- A proxy el tud érni egy támadó által kontrollált FTP-szervert a TCP 21-es porton
Mivel az FTP alapértelmezetten engedélyezett, és a 21-es port szerepel a Squid default Safe_ports ACL-jében, semmilyen különleges konfiguráció nem szükséges a támadáshoz. A kutatók megjegyezték, hogy a szoftver olyan környezetekben is fut, mint vállalati hálózatok, iskolák, nyilvános Wi-Fi rendszerek, sőt, egy fedélzeti repülői Wi-Fi-rendszeren is megtalálták, amely közel egy évtizede kiadott verziót futtatott.
A sebezhetőséget a Calif.io kutatói fedezték fel a Claude Mythos Preview AI-modell segítségével. Az AI szinte azonnal azonosította a strchr null viselkedésének problémáját, hivatkozva a pontos C11 szabvány klauzulára. A kutatók felelős közléssel (responsible disclosure) jártak el. A hibát 2026 áprilisában jelentették a fejlesztőknek, és az exploit nyilvánosságra kerülése előtt a javítás már elkészült.
A javítás mindössze egy ellenőrzés: a *copyFrom nem nulla-e a strchr hívása előtt.
A Squid maintainerek a javítást először a Squid 8-as fejlesztői ágba mergelték 2026 áprilisában, majd a stabil 7.6-os verzióban szállították 2026 júniusában. Ha azonnali frissítés nem lehetséges, az FTP-támogatás kikapcsolása teljes mértékben megszünteti a támadási felületet. A kutatók szerint a legtöbb szervezetben ma már elhanyagolható mértékű a legitim FTP-forgalom.
