CVE-2026-71282

Summary

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.

Affected Software

VendorProductVersion RangeStatus
chirpstackchirpstack0 <= 4.19.0-test.5affected

Weaknesses

  • CWE-89: CWE-89

ADP Enrichment

CISA ADP Vulnrichment

  • SSVC:
  • Exploitation: none
    • Automatable: no
    • Technical Impact: partial

References