[Bug 1972866] Re: [MIR] gsasl
Mark Esler
1972866 at bugs.launchpad.net
Wed Aug 24 20:06:09 UTC 2022
I reviewed gsasl based on 2.0.1-4ubuntu1 as checked into kinetic
proposed with Libntlm disabled in d/rules and d/control. This shouldn't
be considered a full audit but rather a quick gauge of maintainability.
This review focuses on non-Gnulib code.
- CVE History:
- CVE-2022-2469
- "Simon Josefsson discovered an out-of-bounds memory read in GNU SASL, an implementation of the Simple Authentication and Security Layer framework, which could result in denial of service."
- https://www.debian.org/security/2022/dsa-5189
- please note that the version checked into kinetic is vulnerable, the kinetic proposed version is not
- relevant issues in https://git.savannah.gnu.org/cgit/gsasl.git/log/
- commit history was not ported to new gitlab repo
- https://gsasl.gitlab.io/gsasl/clang-analyzer/
- several issues were reported to GNU SASL during this audit
- Build-Depends?
- primarily Gnulib
- debhelper-compat, gettext, help2man, libgnutls28-dev, libgssglue-dev, libidn11-dev, pkg-config, texinfo, valgrind-if-available
- linux-vdso.so.1
- libgsasl.so.7
- libgnutls.so.30
- libc.so.6
- libidn.so.12
- libntlm.so.0
- libgssapi_krb5.so.2
- libp11-kit.so.0
- libidn2.so.0
- libunistring.so.2
- libtasn1.so.6
- libnettle.so.8
- libhogweed.so.6
- libgmp.so.10
- ld-linux-x86-64.so.2
- libkrb5.so.3
- libk5crypto.so.3
- libcom_err.so.2
- libkrb5support.so.0
- libffi.so.8
- libkeyutils.so.1
- libresolv.so.2
- pre/post inst/rm scripts?
- none
- init scripts?
- none
- systemd units?
- none
- dbus services?
- none
- setuid binaries?
- none
- binaries in PATH?
- /usr/bin/gsasl
- sudo fragments?
- none
- polkit files?
- none
- udev rules?
- none
- unit tests / autopkgtests?
- gssapi test is skipped by build/autopkgtests (!)
- gs2-krb5 test is skipped by build/autopkgtests (!)
- cron jobs?
- none
- Build logs:
- okay
- Processes spawned?
- does not appear to be in binaries
- Memory management?
- heavy use of memory
- some issues reported upstream
- File IO?
- yes, by Gnulib
- Logging?
- yes
- besides Gnulib, tests, and examples, mostly in ./src/gsasl.c main()
- Environment variable usage?
- yes, by Gnulib
- Use of privileged functions?
- yes, by Gnulib
- Use of cryptography / random number sources etc?
- implements SASL
- most crypto functions utilize Gnulib
- Use of temp files?
- none, besides example
- Use of networking?
- mostly by Gnulib
- ./src/gsasl.c main
- Use of WebKit?
- none
- Use of PolicyKit?
- none
- Any significant cppcheck results?
- unknown macros
- mostly caused when macros defined in #if statements and then used elsewhere
- Any significant Coverity results?
- many after ignoring example and Gnulib code
- Any significant shellcheck results?
- none, ignoring build and test hits
- Any significant bandit results?
- none
Security team ACK for promoting gsasl to main.
** CVE added: https://cve.mitre.org/cgi-bin/cvename.cgi?name=2022-2469
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to mutt in Ubuntu.
https://bugs.launchpad.net/bugs/1972866
Title:
[MIR] gsasl
Status in gsasl package in Ubuntu:
In Progress
Status in mutt package in Ubuntu:
New
Status in mutt package in Debian:
Fix Released
Bug description:
[Summary]
* Everything seems in order with this package, but it should
be reviewed by the security team due to the nature of the package.
* Build log: https://launchpadlibrarian.net/564514219/buildlog_ubuntu-jammy-amd64.gsasl_1.10.0-5_BUILDING.txt.gz
[Availability]
* The package is already available in Ubuntu universe and builds for the required architectures
[Rationale]
* mutt (which is in main) used to depend on cyrus-sasl. Due to a
licensing conflict between mutt and cyrus-sasl, it has been updated
to use gsasl and drop the dependency on cyrus-sasl. This change
has been made in Debian. Mutt is used by a large part of our
user base, so continuing to provide it is important.
[Security]
* Package gsasl and associated libraries do not have any
security red-flags, but should still be reviewed by
the security team due to the nature of the package (it
authenticates users to servers)
* No CVEs/security issues in this software in the past
* No `suid` or `sgid` binaries
* No executables in `/sbin` and `/usr/sbin`
* Package does not install services, timers or recurring jobs
* Package does not open privileged ports (ports < 1024)
[Quality assurance - function/usage]
* The package works well right after install
[Quality assurance - maintenance]
* The package is maintained well in Debian/Ubuntu and has not too many
and long term critical bugs open
* The package does not deal with exotic hardware we cannot support
[Quality assurance - testing]
* The package runs a test suite on build time, if it fails
it makes the build fail
* The package runs an autopkgtest, and is currently passing
[Quality assurance - packaging]
* debian/watch is present and works
* debian/control defines a correct Maintainer field
* This package does not yield massive lintian Warnings, Errors
* Full output of `lintian --pedantic`:
```
P: gsasl source: update-debian-copyright 2014 vs 2021 [debian/copyright:44]
P: gsasl source: very-long-line-length-in-source-file configure line 13808 is 704 characters long (>512)
P: gsasl source: very-long-line-length-in-source-file examples/openid20/README line 92 is 807 characters long (>512)
P: gsasl source: very-long-line-length-in-source-file examples/saml20/README line 171 is 1396 characters long (>512)
P: gsasl source: very-long-line-length-in-source-file ... use --no-tag-display-limit to see all (or pipe to a file/program)
```
* Lintian overrides are present, but ok because upstream does
not provide source-only tarballs
* This package has no python2 or GTK2 dependencies
* Packaging and build is easy. d/rules is concise and readable
[UI standards]
* Application is end-user facing, Translation is present, via gettext
[Dependencies]
* libgsasl-dev depends on a package from src:libntlm. MIR for
libntlm is here: https://bugs.launchpad.net/ubuntu/+source/libntlm/+bug/1976405
[Standards compliance]
* This package correctly follows FHS and Debian Policy
[Maintenance/Owner]
* Owning Team will be foundations
* Team is not yet, but will subscribe to the package before promotion
* This does not use static builds
* This does not use vendored code
* The package successfully built during the most recent test rebuild
[Background information]
* The Package description explains the package well
* Upstream Name is GNU SASL
* Upstream Link is https://www.gnu.org/software/gsasl/
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gsasl/+bug/1972866/+subscriptions
More information about the foundations-bugs
mailing list