CVE-2022-26981
High · 7.8CVSS
7.8
EPSS
1.5%
Published
Mar 13, 2022
CISA due date
—
Cloudanix analysis
A flaw in a widely used Braille translation library lets attackers who trick someone into opening a specially made file take over that person's computer.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Full Compromise
- Component
- Library
- Class
- Buffer Overflow
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Buffer overflow in compilePassOpcode within compileTranslationTable.c allows out-of-bounds memory writes when processing a malformed translation table file.
Why it matters to the business
Attackers who convince users to process malicious table files can execute arbitrary code on the affected system, leading to potential data theft, ransomware deployment, or full host compromise across libraries and downstream applications in Linux distributions and Apple platforms.
How an attack unfolds
An attacker crafts a malicious translation table containing oversized input that triggers the overflow during compilation; the victim is tricked into running lou_checktable or another tool that loads the table, causing the overflow to overwrite memory and execute attacker-controlled code.
How to fix it
Upgrade liblouis to a version newer than 3.21.0 that resolves the buffer handling issue in compileTranslationTable.c; rebuild and redeploy any dependent packages in Fedora, Apple platforms, or other distributions; scan for and replace any locally compiled vulnerable instances.
How to confirm the fix worked
Confirm package version exceeds 3.21.0 via package manager or source build; attempt to compile a test table with oversized pass opcodes and verify the process no longer crashes or writes beyond bounds; re-run regression tests in lou_checktable and dependent Braille translation workflows.
Typical attack path
- Craft malicious translation table file exploiting compilePassOpcode buffer handling
- Deliver file via email, download link, or shared storage to target user
- Victim executes lou_checktable or equivalent tool that processes the table
- Overflow occurs, shellcode executes with user privileges
- Attacker establishes persistence or escalates privileges on host
How to detect it
Review system logs and process execution history for invocations of lou_checktable or liblouis tools against unexpected file paths; inspect core dumps or crash reports indicating memory corruption in compileTranslationTable.c; correlate with file creation or download events preceding tool execution.
What your security team should do
- Prioritize patching liblouis across all Linux, Fedora, and Apple environments due to available public exploits
- Block execution of lou_checktable and related tools on untrusted table files via application allow-listing
- Monitor for unusual process crashes or memory corruption in Braille/translation tooling
- Update internal build pipelines to reject vulnerable liblouis versions
The record
Liblouis through 3.21.0 has a buffer overflow in compilePassOpcode in compileTranslationTable.c (called, indirectly, by tools/lou_checktable.c).
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | liblouis | 0 | No fix |
| Debian:12 | liblouis | 0 | 3.22.0-1 |
| Debian:13 | liblouis | 0 | 3.22.0-1 |
| SUSE:Enterprise Storage 6 | liblouis | 0 | 3.3.0-150000.4.8.1 |
| SUSE:Enterprise Storage 7 | liblouis | 0 | 3.11.0-150200.3.3.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP1-ESPOS | liblouis | 0 | 3.3.0-150000.4.8.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP1-LTSS | liblouis | 0 | 3.3.0-150000.4.8.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-ESPOS | liblouis | 0 | 3.11.0-150200.3.3.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | liblouis | 0 | 3.11.0-150200.3.3.1 |
| SUSE:Linux Enterprise High Performance Computing 15-ESPOS | liblouis | 0 | 3.3.0-150000.4.8.1 |
| SUSE:Linux Enterprise High Performance Computing 15-LTSS | liblouis | 0 | 3.3.0-150000.4.8.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP3 | liblouis | 0 | 3.11.0-150200.3.3.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP4 | liblouis | 0 | 3.20.0-150400.3.3.1 |
| SUSE:Linux Enterprise Server 15 SP1-BCL | liblouis | 0 | 3.3.0-150000.4.8.1 |
| SUSE:Linux Enterprise Server 15 SP1-LTSS | liblouis | 0 | 3.3.0-150000.4.8.1 |
| SUSE:Linux Enterprise Server 15 SP2-BCL | liblouis | 0 | 3.11.0-150200.3.3.1 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | liblouis | 0 | 3.11.0-150200.3.3.1 |
| SUSE:Linux Enterprise Server 15-LTSS | liblouis | 0 | 3.3.0-150000.4.8.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 | liblouis | 0 | 3.3.0-150000.4.8.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP1 | liblouis | 0 | 3.3.0-150000.4.8.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | liblouis | 0 | 3.11.0-150200.3.3.1 |
| SUSE:Manager Proxy 4.1 | liblouis | 0 | 3.11.0-150200.3.3.1 |
| SUSE:Manager Retail Branch Server 4.1 | liblouis | 0 | 3.11.0-150200.3.3.1 |
| SUSE:Manager Server 4.1 | liblouis | 0 | 3.11.0-150200.3.3.1 |
| Ubuntu:18.04:LTS | liblouis | 0 | 3.5.0-1ubuntu0.4 |
| Ubuntu:20.04:LTS | liblouis | 0 | 3.12.0-3ubuntu0.1 |
| Ubuntu:22.04:LTS | liblouis | 0 | 3.20.0-2ubuntu0.1 |
| Ubuntu:Pro:16.04:LTS | liblouis | 0 | No fix |
| openSUSE:Leap 15.3 | liblouis | 0 | 3.11.0-150200.3.3.1 |
| openSUSE:Leap 15.3 | liblouis | 0 | 3.3.0-150000.4.8.1 |
| openSUSE:Leap 15.4 | liblouis | 0 | 3.11.0-150200.3.3.1 |
| openSUSE:Leap 15.4 | liblouis | 0 | 3.3.0-150000.4.8.1 |
| openSUSE:Leap 15.4 | liblouis | 0 | 3.20.0-150400.3.3.1 |
| openSUSE:Tumbleweed | liblouis | 0 | 3.21.0-2.1 |
Related vulnerabilities
- CVE-2023-26769 Buffer Overflow vulnerability found in Liblouis Lou_Trace v.3.24.0 allows a remote… Also affects liblouis
- CVE-2022-31783 Liblouis 3.21.0 has an out-of-bounds write in compileRule in compileTranslationTable.c… Also affects liblouis
- CVE-2014-8184 A vulnerability was found in liblouis, versions 2.5.x before 2.5.4. Also affects liblouis
- CVE-2017-13738 There is an illegal address access in the _lou_getALine function in… Also affects liblouis
- CVE-2026-112108 A vulnerability was determined in ztxz16 fastllm up to 0.1.8.2. CWE-120
- CVE-2026-90804 A vulnerability was detected in GNU Binutils 2.47. CWE-120
- CVE-2026-90803 A security vulnerability has been detected in GNU Binutils 2.47. CWE-120
- CVE-2026-90801 A security flaw has been discovered in GNU Binutils 2.47. CWE-120