🔍 CVE-2026-39956

6.1
CVSS Score
MEDIUM
2026-04-13
2026-10-26 21:10
✅ 완료

🇰🇷 한글 설명

jq 1.8.2 미만 버전의 _strindices 내장 함수에서 입력값이 문자열인지 검증하지 않아 발생하는 취약점입니다. 공격자가 특정 숫자 값을 입력하여 프로그램의 비정상 종료를 유도하거나, 메모리 주소를 조작하여 제한적인 메모리 읽기 권한을 획득할 수 있습니다.

💡 쉬운 설명

JSON 데이터를 처리하는 jq 프로그램에서 잘못된 데이터 형식을 입력하면 프로그램이 꺼지거나 내부 정보를 몰래 읽을 수 있는 문제입니다. 공격자가 특수하게 조작된 숫자를 보내 프로그램의 동작을 방해할 수 있습니다.

🇺🇸 원문 (English)

jq is a command-line JSON processor. Prior to version 1.8.2, the _strindices builtin in jq's src/builtin.c passes its arguments directly to jv_string_indexes() without verifying they are strings, and jv_string_indexes() in src/jv.c relies solely on assert() checks that are stripped in release builds compiled with -DNDEBUG. This allows an attacker to crash jq trivially with input like _strindices(0), and by crafting a numeric value whose IEEE-754 bit pattern maps to a chosen pointer, achieve a controlled pointer dereference and limited memory read/probe primitive. Any deployment that evaluates untrusted jq filters against a release build is vulnerable. This issue has been patched in commit fdf8ef0f0810e3d365cdd5160de43db46f57ed03, which is part of version 1.8.2.

📍 영향받는 시스템

jq version 1.8.2 미만 모든 버전

⚔️ 공격 벡터

신뢰할 수 없는 jq 필터를 실행할 때 조작된 숫자 값을 _strindices 함수에 전달

🛡️ 대응 방법

jq를 최신 버전인 1.8.2 이상으로 업데이트

🔧 검증 코드

출력된 버전이 1.8.2 미만(예: 1.7.x)이면 취약한 상태입니다.

Shell / Script
jq --version

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H

💻 영향받는 소프트웨어

WP Maps Pro