Īsi sakot: Lai changelog pārbaudītu CVE, instalētās PHP pakotnes izmaiņu žurnālā meklējiet CVE-2026-109618 un CVE-2026-109619: Debian un Ubuntu sistēmās failā /usr/share/doc/<paket>/changelog.Debian.gz, RPM sistēmās ar rpm -q --changelog. Atrasts ieraksts kopā ar pakotnes stāvokli, salīdzinājumu ar oficiālo drošības paziņojumu un pārstartēšanas laiku ir ticams pierādījums. Trūkstošs ieraksts vēl nav pierādījums par atvērtu ievainojamību.
Kāpēc pierādījums ir vairāk nekā „mēs esam ielāpojuši“
Pēc PHP2Shell daudzi vēlas zināt, vai viņu serveri ir droši: vadība, datu aizsardzības speciālists, klienti ar datu apstrādes līgumu, dažkārt arī kiberapdrošinātājs. „Mēs esam ielāpojuši“ tam ir par maz. Vajadzīgs pierādījums, ko trešā persona var pārbaudīt.
Versijas numurs tam bieži nederēs, jo distributīvi labojumus ievieš kā backport un numurs paliek tāds pats. Labāks pamats ir pakotnes changelog. To raksta pakotnes uzturētājs, un drošības atjauninājumiem tajā parasti ir uzskaitīti novērstie CVE numuri.
Kur atrodas changelog
Katram pakotņu formātam ir sava vieta. Šis pārskats palīdz ātri nonākt pie pareizās.
| Sistēma | Changelog atrašanās vieta | Meklēšanas komanda |
|---|---|---|
| Debian, Ubuntu | /usr/share/doc/<paket>/changelog.Debian.gz |
zgrep |
| Debian, Ubuntu (tiešsaistē) | distributīva pakotņu arhīvs | apt changelog <paket> |
| RHEL, AlmaLinux, Rocky, Fedora | RPM pakotņu datubāze | rpm -q --changelog <paket> |
| Konteineru attēli | attēlā, tāpat kā bāzes sistēmā | komandu izpildīt konteinerā |
Debian un Ubuntu sistēmās dažu bināro pakotņu dokumentācijas direktorijs ar simbolisku saiti norāda uz kopīgu pakotni, piemēram, php8.3-common. Ja zgrep failu neatrod, apskatiet direktoriju ar ls -l /usr/share/doc/ | grep php.
Changelog CVE pārbaude: kā rīkoties
Šīs komandas tikai lasa. Pakotņu nosaukumus pielāgojiet savai instalācijai.
# Debian/Ubuntu: lokāli, bez tīkla
zgrep -n -E "CVE-2026-10961[89]|CVE-2026-115560" /usr/share/doc/php8.3-common/changelog.Debian.gz
# Debian/Ubuntu: jaunākā ieraksta galvenes rinda ar pakotnes stāvokli un datumu
zcat /usr/share/doc/php8.3-common/changelog.Debian.gz | head -20
# RHEL saime: ieraksts ar datumu un pakotnes stāvokli
rpm -q --changelog php-common | grep -n -B3 -E "CVE-2026-10961[89]"
Debian un Ubuntu sistēmās pakotnes stāvoklis ir norādīts katra ieraksta galvenes rindā, datums noslēguma rindā. RPM gadījumā abi ir rindā virs ierakstiem. Tā redzat ne tikai to, vai CVE ir minēts, bet arī ar kādu pakotnes stāvokli. Salīdziniet šo stāvokli ar instalēto, piemēram, ar dpkg-query -W vai rpm -q. Ja abi sakrīt, labojums ir iekļauts darbojošajā pakotnē.
Paneļu pakotnes un konteineri
Hostinga paneļi nāk ar savām PHP pakotnēm, piemēram, Plesk vai cPanel. Arī tās ir parastas DEB vai RPM pakotnes, un to changelog var nolasīt ar tiem pašiem rīkiem. Vai sniedzēji tajā min CVE numurus vai tikai jauno PHP versiju, atšķiras. Ja pakotne min upstream versiju 8.5.12, 8.4.27, 8.3.36 vai 8.2.35, ar to pietiek kā pierādījumam; backport gadījumā ar veco numuru vajadzīga sniedzēja atbilde.
Konteineriem pierādījums attiecas uz attēlu, nevis resursdatoru. Pārbaudiet pakotnes attēlā, no kura startēts darbojošais konteiners, un papildus nofiksējiet image digest. Tā vēlāk var izsekot, kāds stāvoklis patiešām darbojās, arī ja attēls zem tās pašas tagas ir pa to laiku pārbūvēts.
Ja CVE changelog nav
Trūkstoša ieraksta iemesli var būt vairāki. Pārbaudiet tos šādā secībā:
- Meklēts nepareizā pakotnē: ja serverī ir vairāki PHP atzari vai avoti, atbilde bieži ir citas pakotnes changelog.
- Upstream versija CVE vietā: ja avots piegādā jauno upstream versiju, piemēram, 8.4.27, changelog zem noteiktiem apstākļiem var būt tikai „New upstream version”. Tad pierādījums ir pati versijas numurs, jo php.net versijas 8.5.12, 8.4.27, 8.3.36 un 8.2.35 min kā labotas.
- Citāda formulējuma izvēle: daži uzturētāji min kļūdu numurus vai paziņojumu identifikatorus, piemēram, GHSA-w8hw-w9fx-j79w un GHSA-6wmf-4rv5-p3rp, nevis CVE.
- Salīdzinājums ar drošības paziņojumu: ja jūsu distributīva oficiālais paziņojums, piemēram, USN vai Debian Security Tracker, min labotu pakotnes stāvokli un instalēts ir šis vai jaunāks, arī tas ir pierādījums. Debian un Ubuntu stāvokļus atradīsiet rakstā Vai mana PHP pakotne ir ielāpota?, RHEL saimei rakstā RHEL, AlmaLinux un Rocky Linux.
- Pajautāt sniedzējam: paneļu pakotņu, hostinga sniedzēja būvējumu vai trešo pušu avotu gadījumā palīdz tikai rakstiska atbilde. Paraugu piedāvā ceļvedis Pajautāt hostinga sniedzējam par ielāpa stāvokli.
Ja pēc šiem soļiem pierādījuma nav, serveri uzskatiet par neielāpotu un ieviesiet pagaidu pasākumus, līdz jautājums ir noskaidrots.
No atrasta ieraksta līdz pierādījumam
Ieraksts changelog pierāda, ka pakotne labojumu satur. Tas nepierāda, ka darbojošies procesi to izmanto. Pilnīgs pierādījums tāpēc satur piecas ziņas par katru serveri un PHP instalāciju:
- serveris, PHP atzars un darbības režīms, piemēram, PHP-FPM vai mod_php
- instalētais pakotnes stāvoklis un pakotnes avots
- atradnes vieta changelog vai atsauce uz oficiālo drošības paziņojumu
- atjauninājuma laiks un darbojošos PHP procesu startēšanas laiks
- pārbaudītāja vārds un pārbaudes datums
Saglabājiet komandu neapstrādātos izvadus kā teksta failu blakus pierādījumam. Tos vēlāk ir vieglāk pārbaudīt nekā kopsavilkumu no atmiņas.
Pierādījums atbild tikai uz jautājumu, vai ievainojamība no kāda laika brīža bija aizvērta. Par laiku pirms tam vajadzīgi žurnāli no 2026. gada 20. oktobra un, ja nepieciešams, pēdu meklēšana. Vispārējo versijas pārbaudes gaitu apraksta lapa PHP versijas un ielāpa stāvokļa pareiza pārbaude.
Kā PHP SOS palīdz konkrēti?
- Mēs izmeklējam visu jūsu serveru PHP pakotņu changelog un salīdzinām tos ar oficiālajiem drošības paziņojumiem.
- Kur changelog klusē, mēs stāvokli noskaidrojam ar distributīvu, paneļa sniedzēju vai hostinga sniedzēju.
- Mēs pārbaudām, ka darbojošies procesi pēc atjauninājuma ir pārstartēti.
- Ar PHP ielāpu pakalpojumu jūs saņemat pierādījumu par katru serveri tādā formā, ko varat nodot trešajām personām.
Biežāk uzdotie jautājumi
Kāpēc ar PHP versiju kā pierādījumu nepietiek?
Daudzi distributīvi drošības labojumus ievieš kā backport, nemainot PHP versiju. Versijas numurs tad par ielāpu neko nesaka. Savukārt instalētās pakotnes changelog min novērstos CVE numurus.
Ko nozīmē tas, ka CVE changelog nav minēts?
Tas var nozīmēt, ka labojuma nav. Taču pakotnes uzturētājs var arī formulēt citādi, piemēram, ar kļūdas numuru vai upstream versiju. Tad salīdziniet pakotnes stāvokli ar oficiālo drošības paziņojumu vai pajautājiet sniedzējam.
Cik ilgi pierādījums jāglabā?
Tik ilgi, kamēr tas var būt svarīgs iekšējām pārbaudēm, apdrošinātājiem vai iespējamiem datu aizsardzības jautājumiem. Glabājiet to kopā ar žurnāliem no 2026. gada 20. oktobra. Konkrētus termiņus noskaidrojiet ar datu aizsardzības speciālistu vai juridisko konsultāciju.
Vai changelog var pārbaudīt arī bez interneta piekļuves?
Jā. Debian un Ubuntu katras pakotnes changelog glabā lokāli mapē /usr/share/doc, RPM sistēmas to glabā pakotņu datubāzē. Abus var izlasīt bez tīkla.