PHP2Shell: რატომ არ ეხება სტატიკურ ვებსაიტებს
გამოქვეყნდა · კითხვის დრო: 3 წთ
სტატიის მოსმენა · კითხულობს ხელოვნური ინტელექტის ხმა
2026 წლის 21 ოქტომბერს PHP-ის გუნდმა PHP-ის ბირთვში ორი კრიტიკული ხარვეზი აღმოფხვრა, რომლებიც PHP2Shell-ის სახელით გახდა ცნობილი. მათი საშუალებით თავდამსხმელს შეუძლია ავტორიზაციის გარეშე საკუთარი კოდი ვებსერვერზე გაუშვას – ყველგან, სადაც PHP ვებმოთხოვნებს პასუხობს, მაგალითად WordPress-ში, რომელსაც PHP სჭირდება.
რა არის PHP2Shell
ეს ორი მოწყვლადობაა თავად PHP-ში და არა რომელიმე დანამატში:
- CVE-2026-109618: თუ მოთხოვნის დამუშავებისას PHP-ს მეხსიერება არ ეყოფა, მეხსიერების ნაწილი არასწორ მდგომარეობაში რჩება. სპეციალურად შედგენილ ფორმის მოთხოვნებს სწორედ ამის გამოწვევა შეუძლია.
- CVE-2026-109619: PHP-ის პროცესი წინა მოთხოვნის მდგომარეობას ინახავს, თუმცა მისი მეხსიერება უკვე გათავისუფლებულია. მომდევნო მოთხოვნას შეუძლია ეს მდგომარეობა კოდის შესაღწევად გამოიყენოს.
PHP ორივე ხარვეზს CVSS 4.0-ით 10-დან 9,2 ქულით აფასებს. ვებსერვერის უფლებებით კოდის გაშვება დადასტურებულია Apache-სა და mod_php-ზე, მეორე ხარვეზის შემთხვევაში კი PHP-FPM-ზეც. აშშ-ის სააგენტო CISA 26 ოქტომბრიდან ორივეს აქტიურად გამოყენებულ მოწყვლადობებად აღრიცხავს.
რა უნდა გააკეთონ საიტების მფლობელებმა ახლა
- განაახლეთ PHP 8.2.35, 8.3.36, 8.4.27 ან 8.5.12 ვერსიამდე – PHP-ის თანახმად, ეს ერთადერთი სრული დაცვაა – და შემდეგ ყველა PHP-პროცესი გადატვირთეთ.
- PHP 8.1 და უფრო ძველი ვერსიები შესწორებას ვეღარ მიიღებს, რადგან ეს შტოები აღარ არის მხარდაჭერილი. გამოსავალი მხოლოდ მხარდაჭერილ შტოზე გადასვლაა.
- თუ დღეს განახლება ვერ ხერხდება, PHP-ის შეტყობინებებში მოცემული დროებითი ზომები რისკს ამცირებს, მაგრამ არ აქრობს:
session.upload_progress.enabled=0, PHP 8.5-ში დამატებითfatal_error_backtraces=0, ასევეmemory_limit=-1წინ მდგომ ვებსერვერზე მოთხოვნის ზომის მკაცრ შეზღუდვებთან ერთად. - საერთო ჰოსტინგზე განახლება პროვაიდერის საქმეა – დააზუსტეთ, PHP-ის რომელი ვერსია მუშაობს.
როგორ ვქმნით ვებსაიტებს
ჩვენი ვებსაიტები PHP-ს არ შეიცავს. მათ Astro-თი სტატიკურ საიტებად ვაგებთ: თითოეული გვერდი ერთხელ, აგებისას იქმნება მზა HTML-ფაილის სახით, ვებსერვერი კი – nginx, Traefik-ის უკან – მხოლოდ ფაილებს აწვდის. გვერდის გახსნისას სერვერზე საიტის არცერთი პროგრამა არ ეშვება, რომელიც მოთხოვნას დაამუშავებდა. PHP2Shell-ის მსგავს ხარვეზებს აქ შესატევი არაფერი აქვთ.
- არც PHP, არც მონაცემთა ბაზა, არც ადმინისტრატორის შესვლა ვებსერვერზე: არაფერია, რითაც შიგთავსის გარედან შეცვლა იქნებოდა შესაძლებელი.
- ფორმები მონაცემებს ჩვენს საკუთარ ფორმების სერვისს უგზავნის, რომელიც სპამს ALTCHA-ით, proof-of-work მეთოდით იგერიებს – cookie-ების და უცხოური CAPTCHA-პროვაიდერების გარეშე (როგორ მუშაობს). თავად ვებსაიტს ამისთვის სერვერული კოდი არ სჭირდება.
- აგება და გამოქვეყნება GitLab-ში: ყოველი ცვლილება გადის ტიპების, SEO-ს და ბმულების შემოწმებას; ქვეყნდება მხოლოდ დაცული მთავარი შტო.
- დამოკიდებულებებს კონვეიერი ყოველი ცვლილებისას და ყოველ კვირა ამოწმებს ცნობილ მოწყვლადობებსა და ლიცენზიებზე. გარდა ამისა, ყველა საიტს ყოველ კვირა თავიდან ვაგებთ.
- უსაფრთხოების სათაურები: Content Security Policy სკრიპტებს მხოლოდ საკუთარი მისამართიდან და ჩვენი ორი სერვისიდან უშვებს – ვიზიტების სტატისტიკიდან და ფორმების სერვისიდან. HSTS
preload-ით HTTPS-ს აიძულებს, და არცერთ სხვა საიტს ჩვენი გვერდების ჩაშენება არ შეუძლია.
სად სჭირდებათ მოვლა სტატიკურ ვებსაიტებსაც
სტატიკური არ ნიშნავს მოვლის გარეშეს: ვებსერვერს, reverse proxy-ს და ოპერაციულ სისტემას კვლავ სჭირდებათ უსაფრთხოების განახლებები, ისევე როგორც ფორმების სერვისს. მაგრამ ეს რამდენიმე მარტივად სამართავი კომპონენტია – PHP-ს, მონაცემთა ბაზის, თემისა და დანამატების ნაცვლად, რომელთაგან თითოეული შეიძლება თავდასხმის სამიზნე გახდეს.
სიამოვნებით შევქმნით თქვენს ვებსაიტსაც ასე.
წყაროები
- PHP-ის უსაფრთხოების შეტყობინება CVE-2026-109618-ზე, 21.10.2026: GHSA-w8hw-w9fx-j79w – მიზეზი, CVSS 4.0: 9,2, შესწორებული ვერსიები, დროებითი ზომები
- PHP-ის უსაფრთხოების შეტყობინება CVE-2026-109619-ზე, 21.10.2026: GHSA-6wmf-4rv5-p3rp – მიზეზი, CVSS 4.0: 9,2, შესწორებული ვერსიები, დროებითი ზომები
- CISA, Known Exploited Vulnerabilities: ორივე CVE დაემატა 26.10.2026-ს – მონაცემები ოფიციალურ რეპოზიტორიაში cisagov/kev-data, 28.10.2026-ის მდგომარეობით
- სახელი „PHP2Shell“: Help Net Security, 21.10.2026
- PHP: მხარდაჭერილი ვერსიები – 29.10.2026-ისთვის შტოები 8.2-დან 8.5-მდე
- WordPress: მოთხოვნები – რეკომენდებულია PHP 8.3 ან უფრო ახალი
- Astro: On-demand rendering – გვერდები ნაგულისხმევად აგებისას სტატიკურ გვერდებად იქმნება
- esn.ge-ის პასუხის სათაურები: საკუთარი მოთხოვნა 29.10.2026-ს (
Content-Security-Policy,Strict-Transport-Security,X-Frame-Options: deny)