[Bug 1271653] Re: [MIR] libiscsi
Seth Arnold
1271653 at bugs.launchpad.net
Thu Feb 18 02:55:51 UTC 2016
I reviewed libiscsi version 1.12.0-2 as checked into xenial. This
shouldn't be considered a full security audit but rather a quick gauge of
maintainability.
- libiscsi provides user-space iscsi initiator support so applications can
use iscsi targets without needing privileged access to the host.
- Build-Depends: debhelper, dh-autoreconf, libcunit1-dev
- Only does CHAP, MD5 cryptography
- Extensive networking support
- Does not itself daemonize
- Does not itself listen on the network
- No pre/post inst/rm
- No initscripts
- No dbus services
- No setuid executables
- iscsi-test-cu, iscsi-ls, iscsi-swp, iscsi-inq, iscsi-readcapacity16
executables in path
- No sudo fragments
- No udev rules
- iscsi-test-cu looks like an incredible test suite, if it functions as
advertised
- No cron jobs
- Clean build logs
- No subprocesses spawned
- Very careful memory management, nice per-scsi-task abstraction layer
- No file IO
- Extensive error logging, spot checks all looked careful
- Several environment variables are used:
LD_ISCSI_GET_LBA_STATUS
LD_ISCSI_DEBUG (not-packaged ld_iscsi.so)
LIBISCSI_DEBUG
LIBISCSI_TCP_USER_TIMEOUT
LIBISCSI_TCP_KEEPCNT
LIBISCSI_TCP_KEEPINTVL
LIBISCSI_TCP_KEEPIDLE
LIBISCSI_TCP_SYNCNT
LIBISCSI_BIND_INTERFACES
LIBISCSI_CHAP_USERNAME
LIBISCSI_CHAP_PASSWORD
Results were typically handed to atoi(3) and then used to set settings;
maybe strtoul(3) would be more robust but this is fine
- No privileged operations
- Essentially no cryptography -- CHAP barely counts. Use this on trusted
networks or over IPsec. (Trusted networks is the expected use, this
isn't unreasonable.)
- Extensive networking; spot checks on networking syscalls all looked
careful
- No portions of code looked more privileged than others
- No temporary file handling
- Does not use WebKit
- Clean cppcheck
- Clean shellcheck
- No PolicyKit
libiscsi looks professionally programmed; SCSI and TCP/IP aren't exactly
easy things but the design of this package looks careful and thoughtful. I
haven't inspected the SCSI state machine in any way but the methods I
inspected all looked like they inspected preconditions and logged
violations, all pieces feel like logical separations of concerns and
designed for testing.
The iscsi-test-cu test suite looks incredible if true. No tests are run
during the build but it would be difficult to test these functions deeply
during build.
The only bug I found is a series of slightly misleading error messages:
- lib/login.c has instances of 'aprintf failed' error strings but the
memory allocation is stack-based buffers, and the failed function is
snprintf().
ld_iscsi looks like a _very_ cute hack -- pity it is too immature to
enable it but I love the idea. (I did not review its code because it's
clearly labeled not-yet-ready for use.)
Security team ACK for promoting libiscsi to main. Please keep an eye on
ld_iscsi in future syncs with Debian to ensure it doesn't get released
before it is ready.
Thanks
** Changed in: libiscsi (Ubuntu)
Assignee: Ubuntu Security Team (ubuntu-security) => (unassigned)
--
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to libiscsi in Ubuntu.
https://bugs.launchpad.net/bugs/1271653
Title:
[MIR] libiscsi
Status in libiscsi package in Ubuntu:
New
Bug description:
Checking against
https://wiki.ubuntu.com/UbuntuMainInclusionRequirements:
1: libiscsi is already available in universe: https://launchpad.net/ubuntu/+source/libiscsi
=====
2: Rationale:
=====
a) iSCSI has become the de-facto standard for connecting infrastructure servers to SAN/NAS storage
b) qemu, which is already in main, depends on libiscsi for iscsi support:
https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/1271573
3: Security
=====
a) no entries found in CVE database
b) no entries found in Secunia database
c) no entries found in Ubuntu CVE tracker
d) executable security:
NO executables which have the suid or sgid bit set.
NO executables in /sbin, /usr/sbin.
NO packages which install daemons (/etc/init.d/*)
NO packages which open privileged ports (ports < 1024).
NO add-ons and plugins to security-sensitive software (filters, scanners, UI skins, etc)
4: QA
=====
a) no configuration required - installs shared library and supporting
tools for inquiring iSCSI portals and targets
b) no debconf questions
c) no long-term outstanding important bugs
d)
Debian PTS: http://packages.qa.debian.org/libi/libiscsi.html
* 4 lintian warning about missing manpages for 2 binaries in the support tools
* 2 buildd log warnings
* 1 bug that a newer upstream version is available
Ubuntu
https://bugs.launchpad.net/ubuntu/+source/libiscsi/+bugs
* 1 NEW bug complaining that libiscsi doesn't work with multipath on EMC
Upstream:
* no open bugs: https://github.com/sahlberg/libiscsi/issues?page=1&state=open
e) Maintenance in Debian/Ubuntu is acceptable. However, several newer upstream releases are available: https://sites.google.com/site/libiscsitarballs/libiscsitarballs/
--> this needs to be fixed in Debian. Upstream development is very active.
f) no exotic hardware
g) test-tool is available, but not run during build because it
requires a running iSCSI portal / target, which cannot be expected to
be available on a build server
h) debian/watch does *not* exist, but debian/copyright contains a link to github
--> this needs to be fixed in Debian
5.) UI standards: n/a
=====
6.) Dependencies:
=====
* shared library has no external dependencies except for libc6, and only build-deps on debhelper and libpopt-dev which are already in main
* binaries depend on the shared library libiscsi1 which is created out of this source package, and libpopt0, which is already in main
7.) Standards compliance
=====
No issues found except for missing man pages for the support tools and some minor buildd warnings, already mentioned in 4d)
8.) Maintenance
=====
Debian maintenance seems to be OK, so syncing should be enough.
9.) Background info
=====
See 2.) Rationale
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/libiscsi/+bug/1271653/+subscriptions
More information about the Ubuntu-openstack-bugs
mailing list