-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Consider releasing version 2.5.1 with ABI version 7 #3863
Comments
My guess would be that 63db555 is the fix for the CVE, but as you say, that doesn't help much given the overall situation. |
Hi @mcatanzaro,thanks for you advises!!
If I choose to release openh264v2.5.1, we would just need to include the commit that fixes the vulnerabilities and create a new branch called openh264v2.5.1. Should I also provide a dynamic library through the release page, similar to v2.5.0, v2.6.0, etc.? I'm not sure how Fedora or other organizations build the openh264 binaries, so I have some questions about that. |
Hi, @BenzhengZhang , the commit you mention in descriptions says This is disabled by default. Does it mean the 2.6.0 binaries published by cisco aren't affected by the api change and are compatible with 2.5.0? |
abidiff is reporting no changes between 2.6.0 and 2.5.0
|
I guess abidiff is either misconfigured or broken? Commit 33f7f48 changes the size of SEncParamExt, and this is exact same struct from the previous ABI break issue report #3564 so we know it will be a problem in practice. I think Benzheng was correct to bump the ABI version. (Any ideas what is wrong with abidiff?)
Yes please. The library released by Cisco is what freedesktop-sdk users ultimately wind up downloading.
Fedora is special because you (Cisco) host our builds. We have downstream packaging here and we can do whatever we want there. Other projects like freedesktop-sdk do not build OpenH264 themselves, and just download the binaries released by Cisco.
Fedora decommissioned the tool for updating the OpenH264 repo and took several months to figure out what to do about this, so it wasn't possible to make any updates at all. But that problem is now fixed.
Fedora rawhide will update to v2.6.0 (and rebuild all dependencies of OpenH264). I would prefer not to update Fedora 42 to a new ABI version. We should certainly update Fedora F42 to the new v2.5.1, though. For older versions of Fedora, we have a choice between updating or just adding the patch for commit 63db555. This is a tough decision to make. Maybe updating from 2.4 -> 2.5 will fix more than it breaks, or maybe it will introduce regressions. Probably just adding the patch would be safer. |
The other thing worth mentioning is noopenh264 which is a stub library to allow Fedora, openSUSE, and freedesktop-sdk build applications and libraries that depend on OpenH264 without actually having the real OpenH264 available. (This library will need to find a new home because freedesktop-sdk is discontinuing its OpenH264 extension.) |
@mcatanzaro Thank you for your answers and knowledge sharing 👍 I'm also puzzled as to why changing the API structure doesn't break the ABI. However, from a practical standpoint and to avoid crash risks, it is more recommended that all users rebuild their applications, even if I've pinned this issue to see if anyone has a better perspective or advice on it. |
I've asked the libabigail maintainer about this but still waiting for an answer. Most likely it doesn't have access to the headers and debug data which we usually supply when comparing ABI. Rebuilding everything is not an option always especially in case of Flatpak runtimes, where bi-directional ABI is maintained and a single runtime can be used by a couple of 1000 apps and runtime maintainers have no control over that. Ideally new API that's disabled by default and requires an ABI bump should be done after releasing a version with the security fix with the old ABI. That makes it easier for everyone because we can just update a single package to release the fix.
Thank your for this. |
According to the libabigail maintainer this is because the ELFs are stripped and have no debuginfo. To quote:
With debuginfo we can indeed see the diff. ABI diff
|
branch: https://github.com/cisco/openh264/tree/openh264v2.5.1 |
OpenH264 2.6.0 fixes this heap buffer overflow issue. Users are advised to upgrade to version 2.6.0. But this is not easy, because 2.6.0 increases the ABI version from 7 to 8, necessitating rebuilds of all dependent applications. This is not permitted in most Linux distributions; generally Linux distributors only do ABI version bumps in development releases (e.g. Fedora 42, freedesktop-sdk 25.08) and leave stable releases (e.g. Fedora 41, Fedora 40, freedesktop-sdk 24.08) on one ABI version forever.
A normal solution to resolve the security issue without an ABI bump is add a patch. This is generally not possible with OpenH264 for two reasons:
There are two easy solutions here:
Say "whoops don't use version 2.6.0" and release a 2.6.1 with ABI version 7, because it looks like the ABI version bump was probably unnecessary. abidiff doesn't show any breaking changes between 2.5.1 and 2.6.0, so it's unclear why the ABI version was increased. (Of course, this downgrade would be inconvenient for anybody who is already using version 2.6.0, since it would require rebuilds of all dependent applications.)Whether it's called 2.6.1 or 2.5.1,a new release with version 7 ABI would be very helpful to get this security fix out to users.The text was updated successfully, but these errors were encountered: