CVE-2022-31783
Medium · 5.5CVSS
5.5
EPSS
1.1%
Published
Jun 2, 2022
CISA due date
—
Cloudanix analysis
A flaw in a widely used Braille translation library can make programs that rely on it crash when they read certain specially prepared files.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Out-of-bounds write during rule compilation in compileTranslationTable.c triggered by malformed translation table input, resulting in memory corruption.
Why it matters to the business
Applications relying on Liblouis for Braille or accessibility translation may crash or become unstable when processing untrusted tables, disrupting accessibility workflows and requiring restarts or manual intervention.
How an attack unfolds
An attacker crafts a malicious translation table containing specially formed rules and supplies it to a Liblouis client such as lou_trace; the library parses the table, the faulty compileRule function writes beyond allocated bounds, and memory corruption occurs.
How to fix it
Upgrade liblouis to the commit ff747ec5e1ac54d54194846f6fe5bfc689192a85 or later release containing the fix.
How to confirm the fix worked
Confirm the installed version is newer than the vulnerable release, then attempt to process the original demonstration table with lou_trace and verify the process no longer crashes or writes out of bounds.
Typical attack path
- Obtain or generate a crafted translation table file
- Invoke a Liblouis utility or application with the malicious table as input
- Trigger rule compilation path that reaches the vulnerable compileRule function
- Observe resulting memory corruption and application instability
How to detect it
Review process crash logs and core dumps for Liblouis utilities; monitor for repeated invocations of lou_trace or similar tools with unexpected table files.
What your security team should do
- Prioritize upgrade of all Liblouis installations to the fixed commit within standard change windows
- Inventory downstream packages and applications that embed Liblouis and schedule coordinated updates
- Add Liblouis version checks to software composition analysis pipelines
The record
Liblouis 3.21.0 has an out-of-bounds write in compileRule in compileTranslationTable.c, as demonstrated by lou_trace.
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 |
| 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-26981 Liblouis through 3.21.0 has a buffer overflow in compilePassOpcode in… 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-111497 A buffer overflow vulnerability in the Brotli decoder (c/dec/decode.c) in Google Brotli… CWE-787
- CVE-2026-112397 Pillow is a Python imaging library. CWE-787
- CVE-2026-112059 libLAS through 1.8.1 contains a heap out-of-bounds write vulnerability in the point… CWE-787
- CVE-2026-89088 A flaw was found in parted. CWE-787