Description
quirc through 1.2 contains an excessive-iteration vulnerability in find_alignment_pattern() in lib/identify.c that allows attackers to hang quirc_end() with a crafted image. Attackers can arrange three finder patterns producing a near-degenerate perspective transform, causing billions of region_code() iterations that exhaust CPU in applications decoding attacker-supplied QR images.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
dlbeer quirc
Default version status: unaffected
0 to ≤ 1.2affected
pkg:github/dlbeer/quircReferences
- https://github.com/dlbeer/quirc/pull/159 ↗
- https://github.com/dlbeer/quirc/issues/162 ↗
- https://hackmd.io/@haind-pwn/quirc-alignment-pattern-infinite-loop-dos ↗
- https://github.com/dlbeer/quirc/blob/542848dd6b9b0eaa9587bbf25b9bc67bd8a71fca/lib/identify.c#L578-L636 ↗
- https://www.vulncheck.com/advisories/quirc-through-1.2-denial-of-service-via-find-alignment-pattern-spiral-search ↗