I reviewed azure-vm-utils 0.4.0-2 as checked into plucky.  This shouldn't be
considered a full audit but rather a quick gauge of maintainability.

azure-vm-utils is a collection of tools and udev rules for Linux on
Azure.

- CVE History
  - None
    - The project is relatively new.
- Build-Depends
  - Standard build depends.
- pre/post inst/rm scripts
  - None
- init scripts
  - None
- systemd units
  - None
- dbus services
  - None
- setuid binaries
  - None
- binaries in PATH
  - None
- sudo fragments
  - None
- polkit files
  - None
- udev rules
  - Generates 80-azure-disk.rules
    - The project advertises itself as a collection of udev rules, so it is
      fine for it to have udev rules.
    - The rules interact with Azure and Microsoft devices, mostly reading
      and creating symlink.
- unit tests / autopkgtests
  - No unit tests or autopkgtests. This was mentioned before, and it was
    deemed hard to test without a VM. One basic autopkgtest was added, and
    the upstream repository seems to contain more tests.
- cron jobs
  - None
- Build logs
  - Normal build logs.

- Processes spawned
  - None
- Memory management
  - The memory is freed normally.
- File IO
  - None
- Logging
  - Provides debug prints. No issues.
- Environment variable usage
  - None
- Use of privileged functions
  - None
- Use of cryptography / random number sources etc
  - None
- Use of temp files
  - None
- Use of networking
  - None
- Use of WebKit
  - None
- Use of PolicyKit
  - None

- Any significant cppcheck results
  - None
- Any significant Coverity results
  - Several Coverity issues were identified.
    - src/main.c:303: Buffer not null terminated (BUFFER_SIZE)
      - The string copy that happens may cause the string to overflow into
        another variable if not null terminated. This could cause issues
        and security vulnerabilities, such as denial of service. While
        there are no checks for this, the input string ultimately is always
        null terminated from scandir(). Therefore, this is not an issue with
        the current inputs.
    - src/main.c:193: Argument cannot be negative (NEGATIVE_RETURNS)
      - In this line of code, sysconf(_SC_PAGESIZE) may return a negative
        value where a negative value is not allowed. This could cause the
        function to allocate too much memory, or crash.
    - Other issues were deemed low severity/false positives.
- Any significant shellcheck results
  - None
- Any significant Semgrep results
  - None

The package is designed to be ran in a privileged environment. The
issues identified by Coverity involve a local attacker inserting maliciously
named devices physically, which is challenging in this scenario. Therefore,
these issues should not be a problem. The upstream code has removed the usage
of the problematic function for the first coverity issue in a later version,
and a PR was filed upstream for the second issue, which should not prevent
the package from being promoted regardless of the outcome of said PR due to
it being a trivial issue in this scenario.

The code itself is maintainable, with clear and concise comments as well as
normal variable naming and memory management. Upstream also utilizes
vulnerability scanning as part of their CI workflow.

Security team ACK for promoting azure-vm-utils to main.

** Changed in: azure-vm-utils (Ubuntu)
       Status: New => In Progress

** Changed in: azure-vm-utils (Ubuntu)
     Assignee: Ubuntu Security Team (ubuntu-security) => (unassigned)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2093322

Title:
  [MIR] azure-vm-utils

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/azure-vm-utils/+bug/2093322/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to