Bug 2547605 - CVE-2026-107170 m17n-lib: NULL dereference in minput_open_im() after failed m17n_init() [fedora-all]
Summary: CVE-2026-107170 m17n-lib: NULL dereference in minput_open_im() after failed m...
Keywords:
Status: NEW
Alias: None
Product: Fedora
Classification: Fedora
Component: m17n-lib
Version: rawhide
Hardware: Unspecified
OS: Unspecified
low
low
Target Milestone: ---
Assignee: Mike FABIAN
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard: {"flaws": ["1d99baca-0cd0-4092-9f07-5...
Depends On:
Blocks: CVE-2026-107170
TreeView+ depends on / blocked
 
Reported: 2026-10-07 17:49 UTC by Vladimir Vasilev
Modified: 2026-10-07 17:49 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Vladimir Vasilev 2026-10-07 17:49:14 UTC
Disclaimer: Community trackers are created by Red Hat Product Security team on a best effort basis. Package maintainers are required to ascertain if the flaw indeed affects their package, before starting the update process.

A flaw was found in m17n-lib. A partial failure during m17n_init() can leave the internal minput_driver pointer NULL. A subsequent call to minput_open_im() can dereference this NULL pointer instead of returning an initialization error, resulting in a crash. No reproducer was supplied for this claim, and attempts to force the specific precondition (an early module-init failure inside m17n_init(), e.g. via a bogus M17NDIR) did not trigger it directly -- the library tolerates a missing or invalid database path gracefully in the tested configuration. Source review of src/m17n.c confirms the claimed code path is real: m17n_init() calls a chain of module initializers (mcharset__init, mcoding__init, mcharset__load_from_database, mcoding__load_from_database, mlang__init, mlocale__init) and jumps to an `err:` label on the first failure, which skips the subsequent minput__init() call entirely. minput__init() is the only place the global minput_driver pointer is assigned; it is NULL otherwise. src/input.c:4786 then does `driver = minput_driver;` and src/input.c:4799 dereferences it unconditionally via `im->driver = *driver;` with no NULL check. The crash is real but requires one of the six earlier module initializers to fail first (e.g. under memory pressure or a corrupted system m17n database), a narrower precondition than the other three issues reported alongside this one. No live reproduction was achieved; this assessment is based on code review alone.


Note You need to log in before you can comment on or make changes to this bug.