🇰🇷 한글 설명
Nokogiri는 Ruby용 XML/HTML 오픈소스 라이브러리이다. 1.19.4 이전 버전에서 Nokogiri::XML::XPathContext가 원본 문서를 가비지 컬렉션으로부터 보호하지 않아, 문서 수명보다 컨텍스트가 오래 사용될 경우 잘못된 메모리를 읽거나 세그멘테이션 폴트가 발생할 수 있다. 이 문제는 애플리케이션이 XPathContext를 직접 생성하고 문서를 해제한 뒤에도 계속 사용하는 경우에만 발생하며, 악의적인 문서 입력으로는 유발되지 않는다.
💡 쉬운 설명
Ruby에서 XML을 다루는 Nokogiri 라이브러리의 일부 기능에서 메모리 관리 오류가 있었습니다. 특정 방식으로 코드를 작성한 경우에만 프로그램이 비정상 종료될 수 있습니다.
🇺🇸 원문 (English)
Nokogiri is an open source XML and HTML library for the Ruby programming language. Prior to 1.19.4, Nokogiri::XML::XPathContext did not keep its source document alive for garbage collection. If an XPathContext outlived its document and the document was collected, evaluating an XPath expression could read invalid memory and potentially segfault. This is only reachable when application code constructs an XPathContext directly and lets the document become unreachable while continuing to use the context. The normal Document#xpath, #css, and related search methods are not affected, and it is not triggerable by malicious document input. This vulnerability is fixed in 1.19.4.
📍 영향받는 시스템
Nokogiri 1.19.4 미만 버전을 사용하고 XPathContext를 직접 생성하는 Ruby 애플리케이션
⚔️ 공격 벡터
외부 공격자가 악성 문서를 주입하는 방식이 아니며, 애플리케이션 코드 내 XPathContext 사용 패턴에 의존하는 로컬 또는 서비스 장애 유발 형태
🛡️ 대응 방법
Nokogiri를 1.19.4 이상으로 업그레이드 (gem update nokogiri 또는 Gemfile에서 버전 지정 후 bundle update nokogiri)
🔧 검증 코드
출력된 버전이 1.19.4 미만이면 취약하며, 1.19.4 이상이면 패치가 적용된 것이다.
gem list nokogiri 2>/dev/null | grep -E 'nokogiri'