CVE-2026-27206: Zumba 클래스 댄스: json-serializer에서 PHP Object Injection을 통한 RCE

발행: (2026년 2월 21일 오후 04:10 GMT+9)
3 분 소요
원문: Dev.to

Source: Dev.to

TL;DR

Zumba Json Serializer ≤ 3.2.2 은 JSON 입력에 있는 @type 필드를 무조건 신뢰하여 공격자가 임의의 PHP 클래스를 인스턴스화할 수 있습니다. 애플리케이션에 “gadget” 클래스가 존재하면 원격 코드 실행(RCE)으로 이어집니다. 3.2.3 버전의 수정에서는 허용 목록을 도입했지만, 이전 호환성을 위해 기본값이 “모두 허용”으로 설정되어 있어 명시적으로 구성하지 않으면 업데이트된 애플리케이션도 여전히 취약합니다.

Technical Details

  • Vulnerability ID: CVE‑2026‑27206
  • CWE ID: CWE‑502 (PHP Object Injection)
  • CVSS Score: 8.1 (High)
  • Attack Vector: Network
  • Impact: Remote Code Execution (RCE)
  • Exploit Status: Proof of Concept (PoC) Available
  • Vulnerability Type: PHP Object Injection

Affected Systems

  • allowedClasses !== null && !in_array($className, $this->allowedClasses, true) 조건을 만족하는 zumba/json-serializer 를 사용하는 PHP 애플리케이션.

Exploit Details

Mitigation Strategies

  • 즉시 3.2.3 버전으로 업그레이드.
  • setAllowedClasses() 를 사용해 엄격한 허용 클래스 목록을 구현.
  • 객체 하이드레이션이 반드시 필요하지 않다면 기본 json_decode 로 전환.
  • 알려진 gadget 체인(예: PHPGGC) 에 대해 애플리케이션 의존성을 감사.

Remediation Steps

  1. 다음 명령 실행:

    composer require zumba/json-serializer:^3.2.3
  2. 코드베이스에서 new JsonSerializer() 의 모든 인스턴스화를 검색.

  3. 각 인스턴스화 뒤에 다음을 추가:

    $serializer->setAllowedClasses([...]); // 허용할 클래스 목록
  4. 직렬화 흐름을 테스트하여 정상적인 클래스가 차단되지 않았는지 확인.

References

0 조회
Back to Blog

관련 글

더 보기 »