🇰🇷 한글 설명
Seroval은 JSON.stringify로 표현할 수 없는 복잡한 자바스크립트 값을 직렬화하는 라이브러리입니다. 1.6.8 이전 버전의 fromJSON은 source가 정상적인 내부 스트림이 아니어도 source.on(listener)를 호출하여 AsyncIteratorFactoryInstance를 재구성하며, 신뢰할 수 없는 입력과 callable 값 또는 on 메서드를 노출하는 애플리케이션 플러그인이 결합되면 조작된 노드가 플러그인이 생성한 값을 호출하게 될 수 있습니다. 이는 CVE-2026-59940의 불완전 수정 변종이며, 영향은 애플리케이션 플러그인이 노출하는 동작에 따라 달라집니다.
💡 쉬운 설명
데이터를 변환하는 도구인 Seroval에서, 외부에서 들어온 악의적으로 조작된 데이터가 프로그램 내부의 기능을 임의로 실행하게 만들 수 있는 취약점입니다. 1.6.8 버전에서 수정되었습니다.
🇺🇸 원문 (English)
Seroval facilitates JavaScript value stringification, including complex structures beyond JSON.stringify capabilities. Prior to 1.6.8, fromJSON rebuilds an AsyncIteratorFactoryInstance by calling source.on(listener) without requiring source to be a genuine internal stream. With untrusted Seroval input and an application plugin that returns a callable value or an object exposing an on method, a crafted node can reuse an identifier so the deserializer invokes the plugin-produced value. This is an incomplete-fix variant of CVE-2026-59940. The resulting confidentiality, integrity, or availability impact depends on the behavior exposed by the application plugin. This issue is fixed in version 1.6.8.
📍 영향받는 시스템
Seroval 1.6.8 미만 버전을 사용하며 애플리케이션 플러그인이 callable 값 또는 on 메서드를 노출하는 환경
⚔️ 공격 벡터
신뢰할 수 없는 Seroval 입력에 조작된 노드를 포함시켜 식별자를 재사용하고, 플러그인이 생성한 값을 역직렬화 과정에서 호출하도록 유도
🛡️ 대응 방법
seroval 패키지를 1.6.8 이상으로 업그레이드하고, 신뢰할 수 없는 입력에 대한 역직렬화를 제한
🔧 검증 코드
출력된 seroval 버전이 1.6.8 미만이면 취약하며, 1.6.8 이상이면 수정된 버전입니다. 여러 버전이 출력되면 각 의존성 경로를 모두 확인해야 합니다.
npm ls seroval 2>/dev/null | grep seroval