
Docker 랩: CVE-2026-75650 Magento 컴포넌트 수준 PHP 실행 프리미티브 검증 및 Adobe VULN-39341 패치 검증용
이 독립형 랩은 StyleSmuggler의 컴포넌트 수준 PHP 실행 프리미티브를 리비전 고정된 Magento Open Source 2.4.9 체크아웃에서 재현한 후, Adobe의 VULN-39341 패치가 동일한 입력을 차단함을 입증합니다.
이 증명은 비파괴적입니다: 포함된 PHP는 /tmp에 무작위 마커 하나만 쓸 수 있습니다. 명령 실행, 파일 다운로드, 콜백 열기, 운영자가 제공한 페이로드 수락이 불가능합니다.
이 랩은 다음을 제공합니다:
755e34dd689021c5165db9d35ecff74f7dc51527에 고정된 표준 Magento 2.4.9 Docker 스택;이 랩은 표준 인증되지 않은 HTTP 익스플로잇을 주장하지 않습니다. 컴포넌트 프로브는 실제 이메일 템플릿 모델에서 시작하므로, 위험한 싱크와 패치 경계를 입증할 뿐 네트워크-템플릿 커넥터의 부재는 입증하지 않습니다. 합성 HTTP 라우트는 추가되지 않습니다.
소유한 시스템 또는 명시적으로 테스트 권한을 부여받은 시스템에서만 사용하십시오. PHP 프로브를 프로덕션 웹 루트 아래에 배치하지 마십시오. 실제 설치의 경우 읽기 전용 검증기를 사용하거나 일회용 스테이징 클론을 검증하십시오.
요구 사항:
개발자 모드 스토어프론트 게이트웨이만 게시되며, 루프백(127.0.0.1:8096 기본값)에서만 게시됩니다. 두 번째 비노출 nginx 게이트웨이는 표준 프로덕션 오류 처리를 선택하므로 보고서 테스트는 Magento의 일반 보고서 식별자를 수신합니다. MariaDB, Redis, OpenSearch, PHP-FPM 및 해당 보고서 게이트웨이는 호스트 네트워크에 노출되지 않습니다.
cd docker-lab
cp .env.example .env
docker compose up -d --build
docker compose logs -f php
초기 Magento 클론, 의존성 설치 및 애플리케이션 설치는 일반적으로 15~40분이 소요됩니다. PHP 로그에 Ready가 출력되면 다음을 실행하십시오:
docker compose exec -T php bash /lab/scripts/run-ab.sh
또는 편의 타깃을 사용하십시오:
make up
make wait
make ab
A/B 명령은 항상 소스를 패치된 상태로 두려고 시도합니다.
테스트는 독립적으로 테스트된 두 절반이 모두 예상대로 동작할 때만 통과합니다:
Unpatched report: raw-tag=true, guard=false
Patched report: raw-tag=false, guard=true, neutralized=true
Unpatched component: marker=true
Patched component: marker=false
[PASS] Report storage and component execution match the required A/B controls.
HTTP 200, 렌더링된 알림, 생성된 오류 보고서 또는 발생한 예외는 실행 증명으로 인정되지 않습니다. 보고서 및 실행 검사는 별개로 유지됩니다: 이들의 공동 성공은 입증되지 않은 표준 HTTP 커넥터를 발명하지 않습니다.
make vulnerable
make report # 예상: 원시 태그 보존, 실행 가드 없음
make probe # 예상: execution_observed=true 및 종료 코드 0
make patched
make report # 예상: 종료 가드 존재, 페이로드 태그 중화
make probe # 예상: execution_observed=false 및 종료 코드 2
패치된 상태에서 make probe가 2를 반환하는 것은 예상된 음성 결과입니다; make ab는 두 종료 상태를 모두 처리하며 전체 A/B가 통과할 때만 0을 반환합니다.
이 검사는 Magento를 시작하거나 마운트된 트리의 코드를 실행하지 않습니다. 컨테이너에는 네트워크, Linux 기능, 읽기 전용 루트 파일시스템 및 읽기 전용 타깃 마운트가 없습니다.
make validate TARGET=/absolute/path/to/magento
완전 패치 예상 판정:
Summary: 9/9 controls present
Verdict: FULL_CONTROL_SET_PRESENT
그 미만은 자동으로 익스플로잇 가능으로 처리되지 않고 FULL_CONTROL_SET_NOT_CONFIRMED로 보고됩니다. 정확한 Commerce 에디션/버전을 확인하고 Adobe의 버전 일치 패치를 지원되는 배포 프로세스를 통해 적용하십시오.
더 정확한 이름은 마커 전용 컴포넌트 코드 실행 프로브입니다. 종단 간 원격 RCE는 테스트된 빌드에서 표준 원격 요청이 자체 독립 마커 또는 콜백을 생성해야 합니다.
데이터 흐름, 9가지 패치 제어 및 증명 강도 표는 기술 노트를 참조하십시오. 정확한 테스트 결과는 VALIDATION.md에 기록되어 있습니다.
공식 게시판과 배포된 릴리스와 일치하는 패치를 사용하십시오:
여기에 포함된 패치는 공개 2.4.9 모노레포 랩에만 경로 매핑되어 있습니다. 프로덕션 Composer 설치에 직접 적용하지 마십시오. 패치는 또한 이미 존재하는 임플란트를 제거하거나 노출된 자격 증명을 복원하지 않습니다.
make down # 볼륨 보존
make reset # 이 랩의 소스, 데이터베이스 및 OpenSearch 볼륨 삭제