Bug#1144469: transition: libcec
"Barak A. Pearlmutter" <[email protected]>
| Newsgroups | gmane.linux.debian.devel.release |
|---|---|
| Message-ID | <CANa01BKeRRBArMgZ5Bn_mppHpZr_ifZLL2V=jZTD3yFjXm8Mww__49558.9219078951$1786801649$gmane$org@mail.gmail.com> |
Package: release.debian.org User: [email protected] Usertags: transition Dear Release Team, I would like to request a transition slot for libcec, which I just dput. Upstream 8.1.6 bumps SONAME from libcec.so.7 to libcec.so.8, so shared library package is renamed libcec7 -> libcec8. No API changes that affect the reverse dependencies. (The ABI change is just the addition of three fields at the end of libcec_configuration.) unstable now: libcec 7.1.1-2 (libcec7) to be uploaded: libcec 8.1.6+dfsg-1 (libcec8) Reverse dependencies of libcec7, and what they need: kodi (kodi-bin) vdr-plugin-xineliboutput (xineliboutput-fbfe, xineliboutput-sxfe, xineliboutput-wlfe) Both need only a binNMU. The development package is libcec-dev, unversioned. Notes: * This has to clear NEW before the transition can start. It introduces libcec8, and also new binary packages for rust and nodejs bindings. * Upstream fixed a handful of buffer overflows in 8.0.0, and 7.1.1-2 in the archive still has them. No CVEs have been assigned, there is no entry for src:libcec in the security tracker, and I am not requesting that this be handled as a security upload. But still... The four (4) security issues are: 1. CCECCommandHandler::HandleSetOSDName copies the whole CEC datapacket into a 17-byte stack buffer with no bound. A datapacket is up to 64 bytes, so any device on the HDMI bus can overflow it by about 47 attacker-chosen bytes by sending a long SET_OSD_NAME. This is reachable in kodi-bin. Fixed in upstream commit f65762b9. The rest need either a hostile/broken display or a hostile USB adapter: 2. CUSBCECAdapterCommands::RequestSetting memcpy()s a reply length taken from the adapter into a fixed cec_datapacket. Fixed in upstream commit 16c1e13d. 3. The EDID readers (nvidia, drm) read an unbounded fgetc loop into a 4096-byte buffer, and the shared parser underflows (size - 4) for sizes 1..4 and reads out of bounds. EDID comes from the connected display via sysfs/procfs. Fixed in upstream commit 94e37582. 4. String copy sizes in the cecc-client example, upstream issue #708. Fixed in upstream commit 01769988. Ben file: title = "libcec"; is_affected = .depends ~ "libcec7" | .depends ~ "libcec8"; is_good = .depends ~ "libcec8"; is_bad = .depends ~ "libcec7"; Cheers, --Barak