PHP2Shell blew 위로: CVSS 9.2, 오프닝의 앞에 일, 그리고 2개의 구멍은 10 년간 부호에서 있었습니다.
첫째, 결론은 다음과 같다:PHP는 CVSS 9.2, 번호 CVE-2026-109618 및 CVE-2026-109619에 대한 무단 원격 코드를 생성, 별명 PHP2Shell. 10월 20일, 공개되었고, 10월 21일, 1400 UTC 패치가 출시되었습니다. 아마존의 벌거벗은 용기가 10월 17일(수)에 기록되었습니다.
다른 것보다 더 악화 :이 두 개의 구멍은 PHP 5.4에가는 첫 번째, 즉 ...수십 년 동안 코드에있었습니다.나는 모른다. 그리고 2024 년, PHP 코어 개발자 감사가 OOM의 경로를 발견했을 때, 팀은 그것을 해결하는 방법을 논의하기 위해 만났다.우리는 동의하지 않았고, 우리는 그것을 수정하지 않았습니다.나는 모른다. 그 이유는 아무도 그것을 실제로 사용할 수 있다고 생각한다.
이 구문은 특히 철입니다. 그렇게 할 수없는 이유는 구멍이 불명하다는 것은 아니지만 체인은 인간의 연구원의 물리적 용량을 넘어가는 너무 복잡합니다. 그럼 AI가 와서 그것을 썼다.
첫째, "다국적 비상 대응"을 길에서 얻을. 보기.
타이틀 파티의 좋아하는 단어는 "글로벌 알람"입니다. 이번에는 비틀거는 아니지만 명확한 점수입니다.
- PHP 공식: 사전 통지는 10 월 20 일에 발행되었으며, 14 : 00 UTC에서 21 10 월은 세부 사항이 누출되거나 필드 된 경우 안전한 버전에서 릴리스됩니다. 그 결과, CVE 번호는 Hacker News와 같은 날에 안정적이며, 10 월 22 일에 예정된 릴리스는 이전 날에 강제되었습니다.
- 인증-EU: 출시 자문 2026-018 모두 CVE를 포함한다.
- 인기 카테고리10 월 21 일, CTO Dane Knecht는 직접 "초기 공격이 등장했습니다"라고 말했으며 WAF 규칙은 무료로 사용할 수 있습니다. 그러나 그는 단지 stopgap이었다고 강조했다, 그리고 실제 솔루션은 패치되었다.
- Amazon 위협 정보: MadPot 꿀 캔은 10 월 17 일에 시도하고 또 다른 배치는 10 월 21 일에 잡았으며, 다른 공격자 수에 대한 급여 및 인프라가 지적했습니다. php2shell "은 이미 널리 사용됩니다.
- Towr 소개: 두 개의 구멍은 재발견, 두 가지를 모두 악용하려고 시도.
그래서 " 공격이 발견되었습니다"는 렌더링이 아니라 사실입니다. 그리고 다국적 비상 대응은 타격이 없습니다 -- 그것은 단지 응답의 주요 주제는 제조 업체, CDN 및 비상기구, 국가의 정부가 아닌.
2개의 2개의 구멍, dying의 2개의 완전히 다른 방법.
많은 사람들이 두 개의 숫자로 구멍을 생각, 아니. 이들은 두 개의 별도의 공격, 각 CVSS 9.2입니다.
CVE-2026-109618: 기억이 depleted 때 폭탄
요청 처리는 PHP 메모리 배포가 실패했을 때 중단됩니다. 문제는:이 시점에서 내부 요청 데이터는 반 개시되고 있으며, 이후의 클린 업 로직은 유효 데이터로 나쁜 데이터를 사용했습니다.
트리거 방법은 간단합니다: 메모리를 간단하게 하는 multipart 요청을 구성합니다. 이상한 것은,요청의 크기는 천장과 일치합니다.그것은 당신이 설치한 포스트 최대 크기 아닙니다, 그것은 내부 가공의 해독 그리고 소비입니다.
최악은 mod php입니다. 시작을 요청할 때 아파치를 위한 mod php그것은 여전히 청소합니다., 그래서이 체인은 적용 가능한 코드 실행 전에 완료 될 수 있습니다. 당신의 PHP 부호는 이렇게 청결합니다, 반복이 없습니다, 그것을 멈추지 않습니다.
PHP-FPM는 시작 실패 할 때 노동자를 죽일 것입니다, 그냥 체인을 잘라, 그래서 공식적으로, mod php는 가장 높은 위험입니다. 그러나 주의 -- 이것은 FPM이 안전하다는 것을 의미하지 않습니다.성공적인 시작여전히 악용의 가능성이 있습니다.
CVE-2026-109619 : 요청시 더러운 상태
이 것의 더 나쁜. PHP는 여러 요청을 처리하기 위해 worker 프로세스를 재사용합니다. 메모리를 방출하기위한 마지막 요청, 포인터는 내부 상태에 남아; 다음 요청은,정상적인 초기화의 앞에 공백 주소를 읽으십시오.나는 모른다.
Fatal errors (메모리, 성능 타임 아웃) 중단 상태 정리. 더 나쁜 것은, 폐쇄 도중 약간 비 흡입 진단은 틀린 상태를 대체했습니다.Redo 그것.나는 모른다.
공식 확인된 통로는 다음을 포함합니다: PHP 8.5 활성화 뚱뚱한 과실 backtraces (과태 오프닝) 및 모터 php와 FPM에 세션 수명 주기 RCEs를 가진 RCEs.session.upload_progress 기본적으로, filth의 상태에 초기 소비자 역할을 할 수 있습니다.그리고 호출을 적용 할 필요가 없습니다(s)나는 모른다.
이 구멍은 아직도 붙어 있습니다.메모리 누출나는 모른다. 누출은 무엇입니까? 비밀번호, 토큰, API 키, 프로세스 메모리의 다른 요청에 대한 인증서입니다. 바로 Heartbled에 비해 Wiz.
Timeline, 제목보다 더 봐.
| (주) | 무슨 일이 있었습니까? |
|---|---|
| 년 2024 | PHP 핵심 개발자 감사는 OOM을 발견, 그 버그, 팀은 법에 합의하지 않았다, 홀에 넣어. |
| 2026-08 | 캘리프의 라이언 오스틴은 OpenAI GPT-5.6 Sol과 루프홀을 식별합니다. Wiz 독립적 인 Discovery |
| 2026-10-17 | Amazon MadPot, 꿀은 오프닝 전에 4 일 시도를 기록 할 수 있습니다. |
| 2026-10-20 | CVE 번호는 해커 뉴스 및 소셜 미디어에 누출, PHP |
| 2026-10-21 | 14:00 UTC 간행물 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 |
10월 17일은 단결해야 합니다.공중 일이었다 20th, 하지만 공격에 일어났다 17th.Amazon 제안은 곧 시작됩니다 : 시작점은 공개 날짜에있지 만 적어도 10 월 17 일에 전달되어야합니다.
공격자가 사전에 정보를 얻은 것과 같이 아마존은 "맑지 않음"이라고 말했다. 나는이로 갈 수 없습니다, 그러나 당신은 현실을 수용해야합니다.불확실한 날은 공격의 날이 아니었지만, 결국 알게 되었습니다.
4, 이번에는 정말 AI입니다.
Wiz의 블로그에는 두 번 읽은 문장이 포함되어 있습니다. "그들은 수십 년 동안 존재했지만 사용 될 수 있음을 증명하기 위해, 그들은 인간 연구자의 실제 기능의 한계에 단계의 예외적으로 복잡한 체인이 필요합니다.Frontline AI 모델은이 임계값을 크게 낮춥니다.나는 모른다.
특정: 라이언 오스틴, 칼리프의 연구자, GPT-5.6 Sol와 OpenAI 프로젝트 "Patch the Planet"에서 발견되었다. Wiz는 독립적으로 같은 문제를 발견했습니다. 그것의 사용을 만들기 위하여, 우리는 결함과 표적의 사슬이 각 표적 필요로 합니다.반복적으로 측정되는 기억 배치Wiz는 정면 선 모형을 말합니다 그(것)들을 시간 안에 다른 신청을 위한 쓸모 있는 신청을 개발할 수 있습니다.
"AI가 다시 우승하지 않습니다."포인트는 "complex"의 모트가 실패하는 것입니다.
많은 오래된 루프홀은 과거에 2 십년간 동안 이겨지지 않았지만, 그들은 심각하지 않다. 그러나 활용의 임계 값이 너무 높기 때문에 - 최고 연구원과 행운의 비트에 의한 투자의 몇 주. 그래서 당신은 "극적 위험"열에 넣어. 이제이 울타리가 사라집니다.
시스템에서 거짓말하는 10 세의 구멍은 "difficult 및 unprocessed"로 평가됩니다.
5, 어느 사람이 가야합니까?
| 팟캐스트 | 수정 된 버전 | 관련 상품 |
|---|---|---|
| PHP의 8.5 | < 8.5.12 | 8.5.12로 올립니다. |
| PHP의 8.4 | < 8.4.27 | 8.4.27로 올립니다. |
| PHP의 8.3 | < 8.3.36 | 8.3.36로 올립니다. |
| PHP의 8.2 | < 8.2.35 | 8.2.35로 올립니다. |
| PHP 7.4/8.0/8.1 | 모든 것 | 공식 공개, 소스 수준 만 |
| PHP 5.4 – 7.3 | 모든 것 | EOL, 정부는 그것을 해결하지 않습니다. 주요사업 |
몇몇 진짜 생활 생각나는 것:
- Linux 릴리스 및 LTS Vendor사전 패치가 있습니다.유통 패키지로 제조업체의 자문을 확인하십시오. 소스 코드를 돌리지 마십시오.
- 제품 정보
rpms.remirepo.net참고 : PHP는 공식적으로 10 월 21 일에 소스를 명시했습니다.업데이트그래서 당신은 배포 패키지로 전환하거나 소스 코드에서 만들 수 있습니다. - PHP 8.5의 Windows 바이너리는 공식 다운로드 페이지에 있습니다.
- 컨테이너에서 실행하는 것이 좋습니다 생각하지 마십시오 -- 컨테이너 미러의 PHP 버전은 체크해야합니다.
6, 패치를 얻을 수없는 경우,이 4을 먼저 만들 수 있습니다.
첫번째 국가:아래의 아무도 당신에게 안전합니다.공식 PHP 구문은 "특정 공격 경로에 노출을 감소하지만, 설치를 안전하지 않습니다". 그들의 가치는 당신에게 헝겊 조각을 얻기 위하여 시간을 줍니다.
메모리 제한을 -1로 설정
목적: 예측 가능한 PHP 메모리 캡을 실패하기 위해, 즉. CVE-2026-109618는 그것이 달려 있는 방아쇠 상태를 확인했습니다.
점은,어떻게?: 응용 프로그램이 FPM Pool과 같은 비례없는 장소에 설정 php_admin_value 또는 Apache 구성. 팝업, 디렉토리, 응용 프로그램 설정이 제한을 다시 추가 할 수 없다는 것을 확인해야합니다.그런 다음 모든 노동자를 다시 시작합니다.
가격은 명확합니다: 당신은 PHP의 자신의 기억 담 떨어져 있고, 밑바닥 배급 실패는 아직도 그 위험한 경로에 있을지도 모릅니다. 그래서 컨테이너 또는 cgroup가 커버를 제한하는 것을 얻었다 -- 그러나 그것은 단지 전략을 "킬에 영향을 미치는 사람들."RLIMIT AS 또는 RLIMIT DATA를 사용하지 마십시오.이러한 두는 반복을 만드는 배포 실패의 종류 정확하게.
포스트 최대 크기 감소
파일없이 사이트 8M 파일 32M 및 보장 upload_max_filesize 그것 보다는 더 적은. 동시에, 제한은 웹 서버 또는 프록시 레이어에 추가됩니다 - 요청의 볼륨은 디코딩, 필드의 수, 복수 부품의 수, 머리의 수, 둥지의 깊이.이 제한은 유효하지 않는 요청을 커버해야합니다 Content-Length또는 우리는 그 주위에 갈 것입니다.
3. session.upload 프로세스를 해제
session.upload_progress.enabled = 0
그것은 php.ini, FPM 도구 또는 서버 구성에 기록됩니다.그것은 요청하기 전에 효과적입니다.나는 모른다. 제품 정보 ini_set() 또는 FPM. .user.ini 그것은 너무 늦었다 -- 그것은 더러운이었다. 변경은 모든 workker를 다시 시작합니다.
PHP의 8.5 더 많은 것
fatal_error_backtraces = 0
이 블록은 다른 변형이없는 지방 오류 백 트랙 만 확인했습니다. 또한 관리자 레벨 설정 + 재시작 작업자가 필요합니다.
또한, 많은 사람들이 무시 할 공식 언급 :공격자는 트리거하고 시간을 실행 할 수있는 지방 오류를 수정합니다.백업, 업로드, 수입 처리, 클린업 실패 등을 포함한 . 과...request-by-request 에 부과된 불법 구성 삭제- 초기화되고 누출을 공급하기 전에 진단 정보를 뱉습니다.
이 마지막 문장은 가장 쉽게 misunder 서서:오류 보고, 표시 오류 또는 @로 진단을 숨길 수 없습니다.그것은 일어나지 않습니다.
VII. 이들의 의지
나는 "이 패치를 닫습니다." 물론 패치입니다. 오늘입니다. 그러나 일부 판단은 변경해야합니다.
- 용어 "사용에 어려움"은 더 이상 "통제"와 동일하지 않습니다.PHP 이 구멍의 접근 체인은 이미 도왔습니다 AI의 도움을 필요로 할 정도로 복잡합니다. "theory risk"를 표시하는 자산 목록의 오래된 구멍은 재평가해야합니다.
- 언어는 단일 지점에서 실행됩니다.WordPress, Drupal, Joomla, Magento, MediaWiki 모든 PHP에서 실행, 응용 프로그램 코드 감사는 깨끗하고, PHP 코어는 문제입니다. 인프라 레이어의 관리 리듬, 애플리케이션 레이어 분리.
- "응용 코드는 실행하지 않고 부서집니다." WAF는 단지 지연 할 수 있습니다.Cloudflare는 멈출 것이라고 말했다. WAF를 솔루션으로 넣는 것은 생명을 지배하는 것과 같습니다.
- PHP를 사용하여 국가의 많은 오래된 사이트가 있습니다.PHP 5.6/7.0에서 실행되는 해당 방송국은 오래 전에 공개되지 않았으며 구름 메인 프레임에 걸친이 노출은 1.3 ~ 1.9 백만의이 노출에 있습니다. 그들은 어떤 통지를받지 않습니다.
데이터 보정은 기록된다 : W3Techs는 서비스로 알려진 언어의 센트 당 69.3 %의 PHPs 계정을 말한다, 및 Wiz 70 퍼센트; 노출 호스트, 보안 연구원 Silas 칼러 1.3 백만 이상 견적, Henk Poley 's Shodan 검색은 1.9 백만 이상이다. 이 숫자는 다른 캘리브의 이고 정확한 값으로 사용하지 마십시오, 그러나 가늠자는 동일합니다 -수백만, 글로벌.
더 많은 세부 사항은 기억 가치가 있습니다. CVE 번호가 누출되었을 때 CVSS 포인트는 10.0, PHP가 공식적으로 확인되었습니다.그 점수가 잘못되었습니다.실제로 9.2입니다. 아무도이 세부 사항에 대해 아무것도 알고 있지만 항상 순환에있을 것입니다. 참조 10.0, 당신은 그것이 무엇인지 알고.
10 년 홀, 2 개월의 AI 보조 연구, 조기 활용 4 일, 1 일 패치 창. 이 timescale는 다음과 같은 모든 기본 소프트웨어의 정상입니다.
지금 버전 확인.php -v또는 태그에 컨테이너 미러를 찾습니다. 내일을 기다리지 마십시오.