Epekto
Ang isang authenticated attacker ay maaaring magsagawa ng arbitrary na PHP code sa pinagbabatayan na web server na [S1]. Nagbibigay-daan ito para sa kumpletong kompromiso sa system, kabilang ang data exfiltration, pagbabago ng nilalaman ng site, at lateral na paggalaw sa loob ng hosting environment na [S1].
Root Cause
Ang kahinaan ay umiiral sa SPIP template composer at compiler component [S1]. Nabigo ang system na maayos na ma-validate o i-sanitize ang input sa loob ng mga partikular na tag ng template kapag nagpoproseso ng mga na-upload na file [S1]. Sa partikular, maling pinangangasiwaan ng compiler ang mga ginawang INCLUDE o INCLURE tag sa loob ng mga HTML file na [S1]. Kapag na-access ng isang attacker ang mga na-upload na file na ito sa pamamagitan ng pagkilos na valider_xml, pinoproseso ang mga nakakahamak na tag, na humahantong sa pagpapatupad ng PHP code na [S1].
Mga Apektadong Bersyon
- Mga bersyon ng SPIP 3.1.2 at lahat ng naunang bersyon [S1].
Remediation
I-update ang SPIP sa isang bersyon na mas bago sa 3.1.2 upang matugunan ang kahinaang ito [S1]. Siguraduhin na ang mga pahintulot sa pag-upload ng file ay mahigpit na pinaghihigpitan sa mga pinagkakatiwalaang administratibong user at ang mga na-upload na file ay hindi nakaimbak sa mga direktoryo kung saan maaaring isagawa ng web server ang mga ito bilang mga script na [S1].
Paano sinusuri ito ng FixVibe
Maaaring makita ng FixVibe ang kahinaang ito sa pamamagitan ng dalawang pangunahing pamamaraan:
- Passive Fingerprinting: Sa pamamagitan ng pagsusuri sa mga header ng tugon ng HTTP o mga partikular na meta tag sa HTML source, matutukoy ng FixVibe ang tumatakbong bersyon ng SPIP [S1]. Kung ang bersyon ay 3.1.2 o mas mababa, ito ay magti-trigger ng isang mataas na kalubhaan alerto [S1].
- Repository Scanning: Para sa mga user na kumokonekta sa kanilang GitHub repository, maaaring suriin ng repo scanner ng FixVibe ang mga dependency file o version-defining constants sa SPIP source code upang matukoy ang mga vulnerable na installation ZXCVFIXXVIBETOKEN0ZXCV.
