🔍 CVE-2026-71282

6.5
CVSS Score
MEDIUM
2026-08-05
2026-08-05 16:17
✅ 완료

🇰🇷 한글 설명

ChirpStack의 SQLite 백엔드에서 장치 태그 필터링 시 사용자 입력값이 SQL 쿼리에 직접 삽입되는 취약점이 발견되었습니다. 태그 값은 안전하게 처리되지만, 태그 키(KEY)가 Rust의 format!() 매크로를 통해 원시 SQL 조각에 직접 포함되어 SQL 인젝션 공격이 가능합니다. 이 문제는 PostgreSQL 백엔드에서는 발생하지 않으며 SQLite 백엔드를 사용하는 환경에서만 영향을 받습니다.

💡 쉬운 설명

로그인한 사용자가 장치 태그의 이름을 조작하여 데이터베이스에 몰래 명령을 내릴 수 있는 보안 약점입니다. SQLite라는 데이터베이스를 사용하는 경우에만 발생하며, 이를 통해 허가되지 않은 데이터를 조회하거나 조작할 위험이 있습니다.

🇺🇸 원문 (English)

ChirpStack's SQLite-backend device tag filtering (chirpstack/src/storage/device.rs, in both get_count() and list()) interpolates the user-supplied tag KEY directly into a raw SQL fragment via Rust's format!() macro (`dsl::sql::<Bool>(&format!("device.tags->>'{}' =", k)).bind::<Text, _>(v)`), while only the tag VALUE is safely parameter-bound via Diesel's .bind(). An authenticated user with device-list access can inject SQL via a crafted tag key when the SQLite backend (chirpstack-sqlite package) is in use; the PostgreSQL backend is unaffected as it uses Diesel's native JSONB containment operator instead of raw SQL string formatting.

📍 영향받는 시스템

ChirpStack (SQLite 백엔드 사용 시)

⚔️ 공격 벡터

인증된 사용자가 조작된 태그 키(Tag Key)를 입력하여 SQL 인젝션 공격 수행

🛡️ 대응 방법

태그 키를 SQL 쿼리에 직접 삽입하지 않고 매개변수화된 쿼리(Parameterized Query)를 사용하도록 코드를 수정하거나 최신 패치 적용

🔧 검증 코드

명령어 결과에 chirpstack-sqlite 패키지가 나타나면 해당 취약점에 노출될 가능성이 있는 환경입니다.

Shell / Script
dpkg -l | grep chirpstack-sqlite 2>/dev/null

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

PostgreSQL