Первый взгляд на Docker Scout
TL;DR
- Классно, что появился встроенный в экосистему сканер уязвимисотей.
- Если ничего не использовали, то можно начать с Docker Scout. Поможет обезопасить образы.
- Если использовали Trivy, то не вижу причин переходить на Docker Scout. У Trivy Больше функционала, качественнее базы.
- Чем более облегченный образ используете, тем безопаснее. Идеально использовать distroless.
Пролог
Собрал для себя образ. И docker build
предложил проверить его на уязвимостью новой утилитой Docker Scout. А он как возьми, да найди сомнительные пакеты. «Не порядок» — подумал я и начал оптимизировать совсем не нуждающийся в этом образ.
Знакомство с инструментом
Я начал приключение с Dockerfile
следующего содержания:
FROM node:22
ARG SERVELESS_VERSION=3.40.0
ARG YC_PLUGIN_VERSION=1.7.25
# Install Serverless Framework globally and Yandex.Cloud plugin
RUN npm install -g \
serverless@${SERVELESS_VERSION} \
"@yandex-cloud/serverless-plugin@${YC_PLUGIN_VERSION}"
WORKDIR /app
CMD [ "serverless" ]
Docker порекомендовал собрать образ через команду docker buildx build --provenance=true --sbom=true
. Но тут же свалился с ошибкой trying to send message larger than max
.
Лог ошибки
=> [linux/arm64] generating sbom using docker.io/docker/buildkit-syft-scanner:stable-1 12.1s
=> ERROR exporting to image 19.9s
=> => exporting layers 11.6s
=> => exporting manifest sha256:ddbffdb1f2f1dde3219cdd7e13de9c45f7968183a04d54065a55b8381f09ddd0 0.0s
=> => exporting config sha256:38eb1a60e1878cc720ec29ef2b55198479e2f2dc12a53206be13421b808c6ebb 0.0s
------
> exporting to image:
------
ERROR: failed to solve: error writing data blob sha256:552c9fa6885ff2969db4a747c1194b74037d392aa234c708
f5b44ec4a5445229: failed to copy: failed to send write: trying to send message larger than max
(16955122 vs. 16777216): unknown
Разберем команду по кусочкам:
buildx
— позволяет использовать расширенные функции BuildKit. Подробнее про доступные команды и атрибуты.--provenance=true
— дает больше информации о том, как был собран образ. Записывает информацию о шагах сборки, параметры и переменные окружения, timestamp’ы и так далее. Подробнее про доступные значения флага и о проверке.--sbom=true
— собирает информацию об используемых пакетах и библиотеках во время сборки. Но может вызвать ошибку на больших образах, поэтому я ею воспользуюсь позже. Подробнее про доступные значения флага и о проверке.
Собираю образ. quickview
рекомендует изменить образ на той же версии с тегом -slim
и показывыает как сразу уменьшится количество угроз на порядок.
❯ docker buildx build --provenance=true --no-cache -t vitkhab/serverless:3.40.0-22 .
...
❯ docker scout quickview local://vitkhab/serverless:3.40.0-22
✓ Image stored for indexing
✓ Indexed 1372 packages
✓ Provenance obtained from attestation
✓ Pulled
Target │ local://vitkhab/serverless:3.40.0-22 │ 0C 3H 8M 129L 4?
digest │ 271280766dd4 │
Base image │ node:22 │ 0C 3H 7M 129L 4?
Updated base image │ node:22-slim │ 0C 0H 2M 23L
│ │ -3 -5 -106 -4
Команда recommendations
дополнительно оценивает свежесть базового образа и в качестве рекомендаций предлагает альтернативу в виде образа с тегом 23-slim
, с более новой версией Node.js. Также проводит оценку по размеру образа и количеству установленных пакетов.
Подробные рекомендации от recommendations
❯ docker scout recommendations local://vitkhab/serverless:3.40.0-22
✓ Image stored for indexing
✓ Indexed 1372 packages
✓ Provenance obtained from attestation
✓ Pulled
Target │ local://vitkhab/serverless:3.40.0-22
digest │ 271280766dd4
## Recommended fixes
Base image is node:22
Name │ 22
Digest │ sha256:6f448489c19fb63b81d788d95a470293026b034d8d657c2f9e5a9d6955a8deec
Vulnerabilities │ 0C 3H 7M 129L 4?
Pushed │ 1 week ago
Size │ 396 MB
Packages │ 749
Runtime │ 22.14.0
Refresh base image
Rebuild the image using a newer base image version. Updating this may result in breaking changes.
✓ This image version is up to date.
Change base image
The list displays new recommended tags in descending order, where the top results are rated as most suitable.
Tag │ Details │ Pushed │ Vulnerabilities
───────────────────────────────┼─────────────────────────────────────────────────────────┼────────────┼─────────────────────────────────────
22-slim │ Benefits: │ 1 week ago │ 0C 0H 2M 23L
Minor runtime version update │ • Minor runtime version update │ │ -3 -5 -106 -4
Also known as: │ • Image is smaller by 303 MB │ │
• 22.14.0-slim │ • Image contains 423 fewer packages │ │
• 22.14-slim │ • Image introduces no new vulnerability but removes 114 │ │
• lts-slim │ • Tag is using slim variant │ │
• jod-slim │ │ │
• 22-bookworm-slim │ Image details: │ │
• jod-bookworm-slim │ • Size: 78 MB │ │
• lts-bookworm-slim │ • Runtime: 22.14.0 │ │
• 22.14-bookworm-slim │ │ │
• 22.14.0-bookworm-slim │ │ │
│ │ │
│ │ │
23-slim │ Benefits: │ 1 week ago │ 0C 0H 2M 23L
Tag is preferred tag │ • Image is smaller by 302 MB │ │ -3 -5 -106 -4
Also known as: │ • Image contains 423 fewer packages │ │
• 23.8.0-slim │ • Tag is preferred tag │ │
• 23.8-slim │ • Tag was pushed more recently │ │
• current-slim │ • Image introduces no new vulnerability but removes 114 │ │
• slim │ • Tag is using slim variant │ │
• bookworm-slim │ │ │
• 23-bookworm-slim │ Image details: │ │
• 23.8-bookworm-slim │ • Size: 80 MB │ │
• 23.8.0-bookworm-slim │ • Runtime: 22 │ │
• current-bookworm-slim │ │ │
│ │ │
│ │ │
Меняю базовый образ на node:22-slim
, собираю и снова проверяю с помощью Docker Scout. Теперь остается только одна рекомендация - обновление базового образа на node:23-slim
.
Результаты сканирования образа на основе 22-slim
❯ docker buildx build --sbom=true --provenance=true --no-cache -t vitkhab/serverless:3.40.0-22-slim .
...
❯ docker scout quickview local://vitkhab/serverless:3.40.0-22-slim
✓ Image stored for indexing
✓ SBOM obtained from attestation, 912 packages found
✓ Provenance obtained from attestation
✓ Pulled
Target │ local://vitkhab/serverless:3.40.0-22-slim │ 0C 0H 3M 23L
digest │ 6973d8cc1f2d │
Base image │ node:22-slim │ 0C 0H 2M 23L
Updated base image │ node:23-slim │ 0C 0H 2M 23L
│ │
❯ docker scout recommendations local://vitkhab/serverless:3.40.0-22-slim
✓ SBOM of image already cached, 912 packages indexed
Target │ local://vitkhab/serverless:3.40.0-22-slim
digest │ 6973d8cc1f2d
## Recommended fixes
Base image is node:22-slim
Name │ 22-slim
Digest │ sha256:0576f7912bf105a725a9f03fe84f0db764e15144c15a729752a3c3cbf7da5408
Vulnerabilities │ 0C 0H 2M 23L
Pushed │ 1 week ago
Size │ 78 MB
Packages │ 326
Runtime │ 22.14.0
Refresh base image
Rebuild the image using a newer base image version. Updating this may result in breaking changes.
✓ This image version is up to date.
Change base image
The list displays new recommended tags in descending order, where the top results are rated as most suitable.
Tag │ Details │ Pushed │ Vulnerabilities
──────────────────────────┼────────────────────────────────────────────┼────────────┼──────────────────────────────
23-slim │ Benefits: │ 1 week ago │ 0C 0H 2M 23L
Tag is preferred tag │ • Same OS detected │ │
Also known as: │ • Tag is preferred tag │ │
• 23.8.0-slim │ • Tag was pushed more recently │ │
• 23.8-slim │ • Image has similar size │ │
• current-slim │ • Image has same number of vulnerabilities │ │
• slim │ • Image contains equal number of packages │ │
• bookworm-slim │ • Tag is using slim variant │ │
• 23-bookworm-slim │ │ │
• 23.8-bookworm-slim │ Image details: │ │
• 23.8.0-bookworm-slim │ • Size: 80 MB │ │
• current-bookworm-slim │ • Runtime: 22 │ │
│ │ │
│ │ │
│ │ │
Продолжаю вестись на уговоры Docker Scout, обновляю базовый образ на node:23-slim
и пересобираю. Теперь мне рекомендуют вернуться обратно на node:22-slim
Результаты сканирования образа на основе 23-slim
❯ docker scout quickview local://vitkhab/serverless:3.40.0-23-slim
✓ Image stored for indexing
✓ SBOM obtained from attestation, 912 packages found
✓ Provenance obtained from attestation
✓ Pulled
Target │ local://vitkhab/serverless:3.40.0-23-slim │ 0C 0H 3M 23L
digest │ 7c0c3361b083 │
Base image │ node:23-slim │ 0C 0H 2M 23L
Updated base image │ node:22-slim │ 0C 0H 2M 23L
│ │
❯ docker scout recommendations local://vitkhab/serverless:3.40.0-23-slim
✓ SBOM of image already cached, 912 packages indexed
Target │ local://vitkhab/serverless:3.40.0-23-slim
digest │ 7c0c3361b083
## Recommended fixes
Base image is node:23-slim
Name │ 23-slim
Digest │ sha256:2dbdc1134da545b2a24e30678676c892fa8a600e8edb6e25afac50852baf213b
Vulnerabilities │ 0C 0H 2M 23L
Pushed │ 1 week ago
Size │ 80 MB
Packages │ 326
Runtime │ 22
Refresh base image
Rebuild the image using a newer base image version. Updating this may result in breaking changes.
✓ This image version is up to date.
Change base image
The list displays new recommended tags in descending order, where the top results are rated as most suitable.
Tag │ Details │ Pushed │ Vulnerabilities
───────────────────────────────────────────┼────────────────────────────────────────────┼────────────┼──────────────────────────────
22-slim │ Benefits: │ 1 week ago │ 0C 0H 2M 23L
Image has same number of vulnerabilities │ • Same OS detected │ │
Also known as: │ • Image is smaller by 1.7 MB │ │
• 22.14.0-slim │ • Image has same number of vulnerabilities │ │
• 22.14-slim │ • Image contains equal number of packages │ │
• lts-slim │ • Tag is using slim variant │ │
• jod-slim │ │ │
• 22-bookworm-slim │ Image details: │ │
• jod-bookworm-slim │ • Size: 78 MB │ │
• lts-bookworm-slim │ • Runtime: 22.14.0 │ │
• 22.14-bookworm-slim │ │ │
• 22.14.0-bookworm-slim │ │ │
│ │ │
│ │ │
Сравнение с Trivy
Остановимся. Выдохнем. Подведем подитог. Я обновил базовый образ с node:22
на node:23-slim
, уменьшив его на 302 МБ и избавившись от 114 угроз. Docker Scout на текущем эапе находит 3 Medium и 23 Low угрозы. Сканируя тот же образ с помощью Trivy можно обнаружить 1 Critical, 1 High, 19 Medium и 57 Low угроз. Trivy находит значительно больше угроз.
Обнаруженные Docker Scout угрозы в образе на основе 23-slim
❯ docker scout cves local://vitkhab/serverless:3.40.0-23-slim
✓ SBOM of image already cached, 912 packages indexed
✗ Detected 14 vulnerable packages with a total of 26 vulnerabilities
## Overview
│ Analyzed Image
────────────────────┼──────────────────────────────────────
Target │ local://vitkhab/serverless:3.40.0-23-slim
digest │ c38eb2f9940a
platform │ linux/arm64/v8
vulnerabilities │ 0C 0H 3M 23L
size │ 186 MB
packages │ 912
│
Base image │ node:23-slim
│ 2dbdc1134da5
## Packages and Vulnerabilities
0C 0H 1M 1L libgnutls30 3.7.9-2+deb12u3
pkg:deb/debian/libgnutls30@3.7.9-2%2Bdeb12u3?arch=arm64&distro=debian-12&upstream=gnutls28
Dockerfile (1:1)
FROM node:23-slim
✗ MEDIUM CVE-2024-12243
https://scout.docker.com/v/CVE-2024-12243
Affected range : <3.7.9-2+deb12u4
Fixed version : 3.7.9-2+deb12u4
✗ LOW CVE-2011-3389
https://scout.docker.com/v/CVE-2011-3389
Affected range : >=3.7.9-2+deb12u3
Fixed version : not fixed
0C 0H 1M 0L axios 0.28.1
pkg:npm/axios@0.28.1
Dockerfile (14:14)
RUN npm install -g serverless@${SERVELESS_VERSION} "@yandex-cloud/serverless-plugin@${YC_PLUGIN_VERSION}"
✗ MEDIUM CVE-2023-45857 [OWASP Top Ten 2017 Category A9 - Using Components with Known Vulnerabilities]
https://scout.docker.com/v/CVE-2023-45857
Affected range : >=0.8.1
: <1.6.0
Fixed version : 1.6.0
CVSS Score : 6.5
CVSS Vector : CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N
0C 0H 1M 0L libtasn1-6 4.19.0-2
pkg:deb/debian/libtasn1-6@4.19.0-2?arch=arm64&distro=debian-12
Dockerfile (1:1)
FROM node:23-slim
✗ MEDIUM CVE-2024-12133
https://scout.docker.com/v/CVE-2024-12133
Affected range : <4.19.0-2+deb12u1
Fixed version : 4.19.0-2+deb12u1
0C 0H 0M 7L libc6 2.36-9+deb12u9
pkg:deb/debian/libc6@2.36-9%2Bdeb12u9?arch=arm64&distro=debian-12&upstream=glibc
Dockerfile (1:1)
FROM node:23-slim
✗ LOW CVE-2019-9192
https://scout.docker.com/v/CVE-2019-9192
Affected range : >=2.36-9+deb12u9
Fixed version : not fixed
✗ LOW CVE-2019-1010025
https://scout.docker.com/v/CVE-2019-1010025
Affected range : >=2.36-9+deb12u9
Fixed version : not fixed
✗ LOW CVE-2019-1010024
https://scout.docker.com/v/CVE-2019-1010024
Affected range : >=2.36-9+deb12u9
Fixed version : not fixed
✗ LOW CVE-2019-1010023
https://scout.docker.com/v/CVE-2019-1010023
Affected range : >=2.36-9+deb12u9
Fixed version : not fixed
✗ LOW CVE-2019-1010022
https://scout.docker.com/v/CVE-2019-1010022
Affected range : >=2.36-9+deb12u9
Fixed version : not fixed
✗ LOW CVE-2018-20796
https://scout.docker.com/v/CVE-2018-20796
Affected range : >=2.36-9+deb12u9
Fixed version : not fixed
✗ LOW CVE-2010-4756
https://scout.docker.com/v/CVE-2010-4756
Affected range : >=2.36-9+deb12u9
Fixed version : not fixed
0C 0H 0M 4L libudev1 252.33-1~deb12u1
pkg:deb/debian/libudev1@252.33-1~deb12u1?arch=arm64&distro=debian-12&upstream=systemd
Dockerfile (1:1)
FROM node:23-slim
✗ LOW CVE-2023-31439
https://scout.docker.com/v/CVE-2023-31439
Affected range : >=252.33-1~deb12u1
Fixed version : not fixed
✗ LOW CVE-2023-31438
https://scout.docker.com/v/CVE-2023-31438
Affected range : >=252.33-1~deb12u1
Fixed version : not fixed
✗ LOW CVE-2023-31437
https://scout.docker.com/v/CVE-2023-31437
Affected range : >=252.33-1~deb12u1
Fixed version : not fixed
✗ LOW CVE-2013-4392
https://scout.docker.com/v/CVE-2013-4392
Affected range : >=252.33-1~deb12u1
Fixed version : not fixed
0C 0H 0M 2L libstdc++6 12.2.0-14
pkg:deb/debian/libstdc%2B%2B6@12.2.0-14?arch=arm64&distro=debian-12&upstream=gcc-12
Dockerfile (1:1)
FROM node:23-slim
✗ LOW CVE-2023-4039
https://scout.docker.com/v/CVE-2023-4039
Affected range : >=12.2.0-14
Fixed version : not fixed
✗ LOW CVE-2022-27943
https://scout.docker.com/v/CVE-2022-27943
Affected range : >=12.2.0-14
Fixed version : not fixed
0C 0H 0M 2L perl-base 5.36.0-7+deb12u1
pkg:deb/debian/perl-base@5.36.0-7%2Bdeb12u1?arch=arm64&distro=debian-12&upstream=perl
Dockerfile (1:1)
FROM node:23-slim
✗ LOW CVE-2023-31486
https://scout.docker.com/v/CVE-2023-31486
Affected range : >=5.36.0-7+deb12u1
Fixed version : not fixed
✗ LOW CVE-2011-4116
https://scout.docker.com/v/CVE-2011-4116
Affected range : >=5.36.0-7+deb12u1
Fixed version : not fixed
0C 0H 0M 1L coreutils 9.1-1
pkg:deb/debian/coreutils@9.1-1?arch=arm64&distro=debian-12
Dockerfile (1:1)
FROM node:23-slim
✗ LOW CVE-2017-18018
https://scout.docker.com/v/CVE-2017-18018
Affected range : >=9.1-1
Fixed version : not fixed
0C 0H 0M 1L tar 1.34+dfsg-1.2+deb12u1
pkg:deb/debian/tar@1.34%2Bdfsg-1.2%2Bdeb12u1?arch=arm64&distro=debian-12
Dockerfile (1:1)
FROM node:23-slim
✗ LOW CVE-2005-2541
https://scout.docker.com/v/CVE-2005-2541
Affected range : >=1.34+dfsg-1.2+deb12u1
Fixed version : not fixed
0C 0H 0M 1L libgcrypt20 1.10.1-3
pkg:deb/debian/libgcrypt20@1.10.1-3?arch=arm64&distro=debian-12
Dockerfile (1:1)
FROM node:23-slim
✗ LOW CVE-2018-6829
https://scout.docker.com/v/CVE-2018-6829
Affected range : >=1.10.1-3
Fixed version : not fixed
0C 0H 0M 1L libapt-pkg6.0 2.6.1
pkg:deb/debian/libapt-pkg6.0@2.6.1?arch=arm64&distro=debian-12&upstream=apt
Dockerfile (1:1)
FROM node:23-slim
✗ LOW CVE-2011-3374
https://scout.docker.com/v/CVE-2011-3374
Affected range : >=2.6.1
Fixed version : not fixed
0C 0H 0M 1L passwd 1:4.13+dfsg1-1+b1
pkg:deb/debian/passwd@1:4.13%2Bdfsg1-1%2Bb1?arch=arm64&distro=debian-12&upstream=shadow%401:4.13%2Bdfsg1-1
Dockerfile (1:1)
FROM node:23-slim
✗ LOW CVE-2007-5686
https://scout.docker.com/v/CVE-2007-5686
Affected range : >=1:4.13+dfsg1-1
Fixed version : not fixed
0C 0H 0M 1L util-linux-extra 2.38.1-5+deb12u3
pkg:deb/debian/util-linux-extra@2.38.1-5%2Bdeb12u3?arch=arm64&distro=debian-12&upstream=util-linux
Dockerfile (1:1)
FROM node:23-slim
✗ LOW CVE-2022-0563
https://scout.docker.com/v/CVE-2022-0563
Affected range : >=2.38.1-5+deb12u3
Fixed version : not fixed
0C 0H 0M 1L gpgv 2.2.40-1.1
pkg:deb/debian/gpgv@2.2.40-1.1?arch=arm64&distro=debian-12&upstream=gnupg2
Dockerfile (1:1)
FROM node:23-slim
✗ LOW CVE-2022-3219
https://scout.docker.com/v/CVE-2022-3219
Affected range : >=2.2.40-1.1
Fixed version : not fixed
26 vulnerabilities found in 14 packages
CRITICAL 0
HIGH 0
MEDIUM 3
LOW 23
Лог сканирования Trivy образа на основе 23-slim
❯ docker run -ti -v /var/run/docker.sock:/var/run/docker.sock aquasec/trivy image vitkhab/serverless:3.40.0-23-slim
2025-02-23T20:06:01Z INFO [vulndb] Need to update DB
2025-02-23T20:06:01Z INFO [vulndb] Downloading vulnerability DB...
2025-02-23T20:06:01Z INFO [vulndb] Downloading artifact... repo="mirror.gcr.io/aquasec/trivy-db:2"
59.40 MiB / 59.40 MiB [-------------] 100.00% 5.25 MiB p/s 12s
2025-02-23T20:06:14Z INFO [vulndb] Artifact successfully downloaded repo="mirror.gcr.io/aquasec/trivy-db:2"
2025-02-23T20:06:14Z INFO [vuln] Vulnerability scanning is enabled
2025-02-23T20:06:14Z INFO [secret] Secret scanning is enabled
2025-02-23T20:06:14Z INFO [secret] If your scanning is slow, please try '--scanners vuln' to disable secret scanning
2025-02-23T20:06:14Z INFO [secret] Please see also https://aquasecurity.github.io/trivy/v0.59/docs/scanner/secret#recommendation for faster secret detection
2025-02-23T20:06:30Z WARN [secret] The size of the scanned file is too large. It is recommended to use `--skip-files` for this file to avoid high memory consumption. file_path="root/.npm/_cacache/content-v2/sha512/fb/d4/a23a8bfe2fc03c37fc207d930a2743aafb8c6ebecc3b29b6aa40020751f95d3f6491cc32fb6e30e9ff503cc8aba0be9f43200465ceccd78a640fc56fa501" size (MB)=16
2025-02-23T20:06:42Z INFO [python] Licenses acquired from one or more METADATA files may be subject to additional terms. Use `--debug` flag to see all affected packages.
2025-02-23T20:06:42Z INFO Detected OS family="debian" version="12.9"
2025-02-23T20:06:42Z INFO [debian] Detecting vulnerabilities... os_version="12" pkg_num=88
2025-02-23T20:06:42Z INFO Number of language-specific files num=2
2025-02-23T20:06:42Z INFO [python-pkg] Detecting vulnerabilities...
2025-02-23T20:06:42Z INFO [node-pkg] Detecting vulnerabilities...
2025-02-23T20:06:42Z WARN Using severities from other vendors for some vulnerabilities. Read https://aquasecurity.github.io/trivy/v0.59/docs/scanner/vulnerability#severity-selection for details.
vitkhab/serverless:3.40.0-23-slim (debian 12.9)
Total: 78 (UNKNOWN: 0, LOW: 57, MEDIUM: 19, HIGH: 1, CRITICAL: 1)
┌────────────────────┬─────────────────────┬──────────┬──────────────┬───────────────────────┬──────────────────┬──────────────────────────────────────────────────────────────┐
│ Library │ Vulnerability │ Severity │ Status │ Installed Version │ Fixed Version │ Title │
├────────────────────┼─────────────────────┼──────────┼──────────────┼───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ apt │ CVE-2011-3374 │ LOW │ affected │ 2.6.1 │ │ It was found that apt-key in apt, all versions, do not │
│ │ │ │ │ │ │ correctly... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2011-3374 │
├────────────────────┼─────────────────────┤ │ ├───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ bash │ TEMP-0841856-B18BAF │ │ │ 5.2.15-2+b7 │ │ [Privilege escalation possible to other user than root] │
│ │ │ │ │ │ │ https://security-tracker.debian.org/tracker/TEMP-0841856-B1- │
│ │ │ │ │ │ │ 8BAF │
├────────────────────┼─────────────────────┤ │ ├───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ bsdutils │ CVE-2022-0563 │ │ │ 1:2.38.1-5+deb12u3 │ │ util-linux: partial disclosure of arbitrary files in chfn │
│ │ │ │ │ │ │ and chsh when compiled... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-0563 │
├────────────────────┼─────────────────────┤ ├──────────────┼───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ coreutils │ CVE-2016-2781 │ │ will_not_fix │ 9.1-1 │ │ coreutils: Non-privileged session can escape to the parent │
│ │ │ │ │ │ │ session in chroot │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2016-2781 │
│ ├─────────────────────┤ ├──────────────┤ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2017-18018 │ │ affected │ │ │ coreutils: race condition vulnerability in chown and chgrp │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2017-18018 │
├────────────────────┼─────────────────────┤ │ ├───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ gcc-12-base │ CVE-2022-27943 │ │ │ 12.2.0-14 │ │ binutils: libiberty/rust-demangle.c in GNU GCC 11.2 allows │
│ │ │ │ │ │ │ stack exhaustion in demangle_const │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-27943 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-4039 │ │ │ │ │ gcc: -fstack-protector fails to guard dynamic stack │
│ │ │ │ │ │ │ allocations on ARM64 │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-4039 │
├────────────────────┼─────────────────────┤ │ ├───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ gpgv │ CVE-2022-3219 │ │ │ 2.2.40-1.1 │ │ gnupg: denial of service issue (resource consumption) using │
│ │ │ │ │ │ │ compressed packets │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-3219 │
├────────────────────┼─────────────────────┤ │ ├───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ libapt-pkg6.0 │ CVE-2011-3374 │ │ │ 2.6.1 │ │ It was found that apt-key in apt, all versions, do not │
│ │ │ │ │ │ │ correctly... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2011-3374 │
├────────────────────┼─────────────────────┤ │ ├───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ libblkid1 │ CVE-2022-0563 │ │ │ 2.38.1-5+deb12u3 │ │ util-linux: partial disclosure of arbitrary files in chfn │
│ │ │ │ │ │ │ and chsh when compiled... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-0563 │
├────────────────────┼─────────────────────┼──────────┤ ├───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ libc-bin │ CVE-2025-0395 │ MEDIUM │ │ 2.36-9+deb12u9 │ │ glibc: buffer overflow in the GNU C Library's assert() │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2025-0395 │
│ ├─────────────────────┼──────────┤ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2010-4756 │ LOW │ │ │ │ glibc: glob implementation can cause excessive CPU and │
│ │ │ │ │ │ │ memory consumption due to... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2010-4756 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2018-20796 │ │ │ │ │ glibc: uncontrolled recursion in function │
│ │ │ │ │ │ │ check_dst_limits_calc_pos_1 in posix/regexec.c │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2018-20796 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2019-1010022 │ │ │ │ │ glibc: stack guard protection bypass │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2019-1010022 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2019-1010023 │ │ │ │ │ glibc: running ldd on malicious ELF leads to code execution │
│ │ │ │ │ │ │ because of... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2019-1010023 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2019-1010024 │ │ │ │ │ glibc: ASLR bypass using cache of thread stack and heap │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2019-1010024 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2019-1010025 │ │ │ │ │ glibc: information disclosure of heap addresses of │
│ │ │ │ │ │ │ pthread_created thread │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2019-1010025 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2019-9192 │ │ │ │ │ glibc: uncontrolled recursion in function │
│ │ │ │ │ │ │ check_dst_limits_calc_pos_1 in posix/regexec.c │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2019-9192 │
├────────────────────┼─────────────────────┼──────────┤ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ libc6 │ CVE-2025-0395 │ MEDIUM │ │ │ │ glibc: buffer overflow in the GNU C Library's assert() │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2025-0395 │
│ ├─────────────────────┼──────────┤ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2010-4756 │ LOW │ │ │ │ glibc: glob implementation can cause excessive CPU and │
│ │ │ │ │ │ │ memory consumption due to... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2010-4756 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2018-20796 │ │ │ │ │ glibc: uncontrolled recursion in function │
│ │ │ │ │ │ │ check_dst_limits_calc_pos_1 in posix/regexec.c │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2018-20796 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2019-1010022 │ │ │ │ │ glibc: stack guard protection bypass │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2019-1010022 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2019-1010023 │ │ │ │ │ glibc: running ldd on malicious ELF leads to code execution │
│ │ │ │ │ │ │ because of... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2019-1010023 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2019-1010024 │ │ │ │ │ glibc: ASLR bypass using cache of thread stack and heap │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2019-1010024 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2019-1010025 │ │ │ │ │ glibc: information disclosure of heap addresses of │
│ │ │ │ │ │ │ pthread_created thread │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2019-1010025 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2019-9192 │ │ │ │ │ glibc: uncontrolled recursion in function │
│ │ │ │ │ │ │ check_dst_limits_calc_pos_1 in posix/regexec.c │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2019-9192 │
├────────────────────┼─────────────────────┼──────────┤ ├───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ libcap2 │ CVE-2025-1390 │ MEDIUM │ │ 1:2.66-4 │ │ libcap: pam_cap: Fix potential configuration parsing error │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2025-1390 │
├────────────────────┼─────────────────────┼──────────┤ ├───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ libgcc-s1 │ CVE-2022-27943 │ LOW │ │ 12.2.0-14 │ │ binutils: libiberty/rust-demangle.c in GNU GCC 11.2 allows │
│ │ │ │ │ │ │ stack exhaustion in demangle_const │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-27943 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-4039 │ │ │ │ │ gcc: -fstack-protector fails to guard dynamic stack │
│ │ │ │ │ │ │ allocations on ARM64 │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-4039 │
├────────────────────┼─────────────────────┼──────────┼──────────────┼───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ libgcrypt20 │ CVE-2024-2236 │ MEDIUM │ fix_deferred │ 1.10.1-3 │ │ libgcrypt: vulnerable to Marvin Attack │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-2236 │
│ ├─────────────────────┼──────────┼──────────────┤ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2018-6829 │ LOW │ affected │ │ │ libgcrypt: ElGamal implementation doesn't have semantic │
│ │ │ │ │ │ │ security due to incorrectly encoded plaintexts... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2018-6829 │
├────────────────────┼─────────────────────┼──────────┼──────────────┼───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ libgnutls30 │ CVE-2024-12243 │ MEDIUM │ fixed │ 3.7.9-2+deb12u3 │ 3.7.9-2+deb12u4 │ gnutls: GnuTLS Impacted by Inefficient DER Decoding in │
│ │ │ │ │ │ │ libtasn1 Leading to Remote... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-12243 │
│ ├─────────────────────┼──────────┼──────────────┤ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2011-3389 │ LOW │ affected │ │ │ HTTPS: block-wise chosen-plaintext attack against SSL/TLS │
│ │ │ │ │ │ │ (BEAST) │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2011-3389 │
├────────────────────┼─────────────────────┤ │ ├───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ libmount1 │ CVE-2022-0563 │ │ │ 2.38.1-5+deb12u3 │ │ util-linux: partial disclosure of arbitrary files in chfn │
│ │ │ │ │ │ │ and chsh when compiled... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-0563 │
├────────────────────┼─────────────────────┼──────────┤ ├───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ libpam-modules │ CVE-2024-10041 │ MEDIUM │ │ 1.5.2-6+deb12u1 │ │ pam: libpam: Libpam vulnerable to read hashed password │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-10041 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2024-22365 │ │ │ │ │ pam: allowing unprivileged user to block another user │
│ │ │ │ │ │ │ namespace │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-22365 │
├────────────────────┼─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ libpam-modules-bin │ CVE-2024-10041 │ │ │ │ │ pam: libpam: Libpam vulnerable to read hashed password │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-10041 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2024-22365 │ │ │ │ │ pam: allowing unprivileged user to block another user │
│ │ │ │ │ │ │ namespace │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-22365 │
├────────────────────┼─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ libpam-runtime │ CVE-2024-10041 │ │ │ │ │ pam: libpam: Libpam vulnerable to read hashed password │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-10041 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2024-22365 │ │ │ │ │ pam: allowing unprivileged user to block another user │
│ │ │ │ │ │ │ namespace │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-22365 │
├────────────────────┼─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ libpam0g │ CVE-2024-10041 │ │ │ │ │ pam: libpam: Libpam vulnerable to read hashed password │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-10041 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2024-22365 │ │ │ │ │ pam: allowing unprivileged user to block another user │
│ │ │ │ │ │ │ namespace │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-22365 │
├────────────────────┼─────────────────────┼──────────┤ ├───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ libsmartcols1 │ CVE-2022-0563 │ LOW │ │ 2.38.1-5+deb12u3 │ │ util-linux: partial disclosure of arbitrary files in chfn │
│ │ │ │ │ │ │ and chsh when compiled... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-0563 │
├────────────────────┼─────────────────────┤ │ ├───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ libstdc++6 │ CVE-2022-27943 │ │ │ 12.2.0-14 │ │ binutils: libiberty/rust-demangle.c in GNU GCC 11.2 allows │
│ │ │ │ │ │ │ stack exhaustion in demangle_const │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-27943 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-4039 │ │ │ │ │ gcc: -fstack-protector fails to guard dynamic stack │
│ │ │ │ │ │ │ allocations on ARM64 │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-4039 │
├────────────────────┼─────────────────────┤ │ ├───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ libsystemd0 │ CVE-2013-4392 │ │ │ 252.33-1~deb12u1 │ │ systemd: TOCTOU race condition when updating file │
│ │ │ │ │ │ │ permissions and SELinux security contexts... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2013-4392 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-31437 │ │ │ │ │ An issue was discovered in systemd 253. An attacker can │
│ │ │ │ │ │ │ modify a... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-31437 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-31438 │ │ │ │ │ An issue was discovered in systemd 253. An attacker can │
│ │ │ │ │ │ │ truncate a... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-31438 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-31439 │ │ │ │ │ An issue was discovered in systemd 253. An attacker can │
│ │ │ │ │ │ │ modify the... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-31439 │
├────────────────────┼─────────────────────┼──────────┼──────────────┼───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ libtasn1-6 │ CVE-2024-12133 │ MEDIUM │ fixed │ 4.19.0-2 │ 4.19.0-2+deb12u1 │ libtasn1: Inefficient DER Decoding in libtasn1 Leading to │
│ │ │ │ │ │ │ Potential Remote DoS │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-12133 │
├────────────────────┼─────────────────────┤ ├──────────────┼───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ libtinfo6 │ CVE-2023-50495 │ │ affected │ 6.4-4 │ │ ncurses: segmentation fault via _nc_wrap_entry() │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-50495 │
├────────────────────┼─────────────────────┼──────────┤ ├───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ libudev1 │ CVE-2013-4392 │ LOW │ │ 252.33-1~deb12u1 │ │ systemd: TOCTOU race condition when updating file │
│ │ │ │ │ │ │ permissions and SELinux security contexts... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2013-4392 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-31437 │ │ │ │ │ An issue was discovered in systemd 253. An attacker can │
│ │ │ │ │ │ │ modify a... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-31437 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-31438 │ │ │ │ │ An issue was discovered in systemd 253. An attacker can │
│ │ │ │ │ │ │ truncate a... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-31438 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-31439 │ │ │ │ │ An issue was discovered in systemd 253. An attacker can │
│ │ │ │ │ │ │ modify the... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-31439 │
├────────────────────┼─────────────────────┤ │ ├───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ libuuid1 │ CVE-2022-0563 │ │ │ 2.38.1-5+deb12u3 │ │ util-linux: partial disclosure of arbitrary files in chfn │
│ │ │ │ │ │ │ and chsh when compiled... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-0563 │
├────────────────────┼─────────────────────┼──────────┤ ├───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ login │ CVE-2023-4641 │ MEDIUM │ │ 1:4.13+dfsg1-1+b1 │ │ shadow-utils: possible password leak during passwd(1) change │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-4641 │
│ ├─────────────────────┼──────────┤ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2007-5686 │ LOW │ │ │ │ initscripts in rPath Linux 1 sets insecure permissions for │
│ │ │ │ │ │ │ the /var/lo ...... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2007-5686 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-29383 │ │ │ │ │ shadow: Improper input validation in shadow-utils package │
│ │ │ │ │ │ │ utility chfn │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-29383 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2024-56433 │ │ │ │ │ shadow-utils: Default subordinate ID configuration in │
│ │ │ │ │ │ │ /etc/login.defs could lead to compromise │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-56433 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ TEMP-0628843-DBAD28 │ │ │ │ │ [more related to CVE-2005-4890] │
│ │ │ │ │ │ │ https://security-tracker.debian.org/tracker/TEMP-0628843-DB- │
│ │ │ │ │ │ │ AD28 │
├────────────────────┼─────────────────────┤ │ ├───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ mount │ CVE-2022-0563 │ │ │ 2.38.1-5+deb12u3 │ │ util-linux: partial disclosure of arbitrary files in chfn │
│ │ │ │ │ │ │ and chsh when compiled... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-0563 │
├────────────────────┼─────────────────────┼──────────┤ ├───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ ncurses-base │ CVE-2023-50495 │ MEDIUM │ │ 6.4-4 │ │ ncurses: segmentation fault via _nc_wrap_entry() │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-50495 │
├────────────────────┤ │ │ │ ├──────────────────┤ │
│ ncurses-bin │ │ │ │ │ │ │
│ │ │ │ │ │ │ │
├────────────────────┼─────────────────────┤ │ ├───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ passwd │ CVE-2023-4641 │ │ │ 1:4.13+dfsg1-1+b1 │ │ shadow-utils: possible password leak during passwd(1) change │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-4641 │
│ ├─────────────────────┼──────────┤ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2007-5686 │ LOW │ │ │ │ initscripts in rPath Linux 1 sets insecure permissions for │
│ │ │ │ │ │ │ the /var/lo ...... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2007-5686 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-29383 │ │ │ │ │ shadow: Improper input validation in shadow-utils package │
│ │ │ │ │ │ │ utility chfn │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-29383 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2024-56433 │ │ │ │ │ shadow-utils: Default subordinate ID configuration in │
│ │ │ │ │ │ │ /etc/login.defs could lead to compromise │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-56433 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ TEMP-0628843-DBAD28 │ │ │ │ │ [more related to CVE-2005-4890] │
│ │ │ │ │ │ │ https://security-tracker.debian.org/tracker/TEMP-0628843-DB- │
│ │ │ │ │ │ │ AD28 │
├────────────────────┼─────────────────────┼──────────┤ ├───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ perl-base │ CVE-2023-31484 │ HIGH │ │ 5.36.0-7+deb12u1 │ │ perl: CPAN.pm does not verify TLS certificates when │
│ │ │ │ │ │ │ downloading distributions over HTTPS... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-31484 │
│ ├─────────────────────┼──────────┤ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2011-4116 │ LOW │ │ │ │ perl: File:: Temp insecure temporary file handling │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2011-4116 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-31486 │ │ │ │ │ http-tiny: insecure TLS cert default │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-31486 │
├────────────────────┼─────────────────────┤ │ ├───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ sysvinit-utils │ TEMP-0517018-A83CE6 │ │ │ 3.06-4 │ │ [sysvinit: no-root option in expert installer exposes │
│ │ │ │ │ │ │ locally exploitable security flaw] │
│ │ │ │ │ │ │ https://security-tracker.debian.org/tracker/TEMP-0517018-A8- │
│ │ │ │ │ │ │ 3CE6 │
├────────────────────┼─────────────────────┤ │ ├───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ tar │ CVE-2005-2541 │ │ │ 1.34+dfsg-1.2+deb12u1 │ │ tar: does not properly warn the user when extracting setuid │
│ │ │ │ │ │ │ or setgid... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2005-2541 │
│ ├─────────────────────┤ │ │ ├──────────────────┼──────────────────────────────────────────────────────────────┤
│ │ TEMP-0290435-0B57B5 │ │ │ │ │ [tar's rmt command may have undesired side effects] │
│ │ │ │ │ │ │ https://security-tracker.debian.org/tracker/TEMP-0290435-0B- │
│ │ │ │ │ │ │ 57B5 │
├────────────────────┼─────────────────────┤ │ ├───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ util-linux │ CVE-2022-0563 │ │ │ 2.38.1-5+deb12u3 │ │ util-linux: partial disclosure of arbitrary files in chfn │
│ │ │ │ │ │ │ and chsh when compiled... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-0563 │
├────────────────────┤ │ │ │ ├──────────────────┤ │
│ util-linux-extra │ │ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │
├────────────────────┼─────────────────────┼──────────┼──────────────┼───────────────────────┼──────────────────┼──────────────────────────────────────────────────────────────┤
│ zlib1g │ CVE-2023-45853 │ CRITICAL │ will_not_fix │ 1:1.2.13.dfsg-1 │ │ zlib: integer overflow and resultant heap-based buffer │
│ │ │ │ │ │ │ overflow in zipOpenNewFileInZip4_6 │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-45853 │
└────────────────────┴─────────────────────┴──────────┴──────────────┴───────────────────────┴──────────────────┴──────────────────────────────────────────────────────────────┘
Полученный образ для локально запускаемой утилиты представляет из себя решето из 78 дыр информационной безопасности. Что меня не устраивает. Поэтому я продолжаю оптимизировать образ, перехожу на node:23-alpine
. Изменение, которое Docker Scout не предложил. Trivy тоже. Итоговый Dockerfile
выглядит так:
FROM node:23-alpine
ARG SERVELESS_VERSION=3.40.0
ARG YC_PLUGIN_VERSION=1.7.25
# Install Serverless Framework globally and Yandex.Cloud plugin
RUN npm install -g \
serverless@${SERVELESS_VERSION} \
"@yandex-cloud/serverless-plugin@${YC_PLUGIN_VERSION}"{YC_PLUGIN_VERSION}"
WORKDIR /app
CMD [ "serverless" ]
Собираю. Проверяю с помощью Trivy. 0 найденных уязвимостей. Успех!
Лог сканирования Trivy образа на основе 23-alpine
❯ docker run -ti -v /var/run/docker.sock:/var/run/docker.sock aquasec/trivy image vitkhab/serverless:3.40.0-alpine
2025-02-23T19:13:19Z INFO [vulndb] Need to update DB
2025-02-23T19:13:19Z INFO [vulndb] Downloading vulnerability DB...
2025-02-23T19:13:19Z INFO [vulndb] Downloading artifact... repo="mirror.gcr.io/aquasec/trivy-db:2"
59.40 MiB / 59.40 MiB [--------------------------------------------------------------------------------------------------------------------] 100.00% 7.80 MiB p/s 7.8s
2025-02-23T19:13:28Z INFO [vulndb] Artifact successfully downloaded repo="mirror.gcr.io/aquasec/trivy-db:2"
2025-02-23T19:13:28Z INFO [vuln] Vulnerability scanning is enabled
2025-02-23T19:13:28Z INFO [secret] Secret scanning is enabled
2025-02-23T19:13:28Z INFO [secret] If your scanning is slow, please try '--scanners vuln' to disable secret scanning
2025-02-23T19:13:28Z INFO [secret] Please see also https://aquasecurity.github.io/trivy/v0.59/docs/scanner/secret#recommendation for faster secret detection
2025-02-23T19:13:40Z WARN [secret] The size of the scanned file is too large. It is recommended to use `--skip-files` for this file to avoid high memory consumption. file_path="root/.npm/_cacache/content-v2/sha512/fb/d4/a23a8bfe2fc03c37fc207d930a2743aafb8c6ebecc3b29b6aa40020751f95d3f6491cc32fb6e30e9ff503cc8aba0be9f43200465ceccd78a640fc56fa501" size (MB)=16
2025-02-23T19:13:50Z INFO [python] Licenses acquired from one or more METADATA files may be subject to additional terms. Use `--debug` flag to see all affected packages.
2025-02-23T19:13:50Z INFO Detected OS family="alpine" version="3.21.3"
2025-02-23T19:13:50Z INFO [alpine] Detecting vulnerabilities... os_version="3.21" repository="3.21" pkg_num=17
2025-02-23T19:13:50Z INFO Number of language-specific files num=2
2025-02-23T19:13:50Z INFO [python-pkg] Detecting vulnerabilities...
2025-02-23T19:13:50Z INFO [node-pkg] Detecting vulnerabilities...
vitkhab/serverless:3.40.0-alpine (alpine 3.21.3)
Total: 0 (UNKNOWN: 0, LOW: 0, MEDIUM: 0, HIGH: 0, CRITICAL: 0)
Смотрю, что покажет Docker Scout. Найдена уязвимость в пакетах Node.js, которой нет в логе Trivy. А получилось так из-за ошибки парсинга базы CVE Gitlab в базу Docker Scout. В источнике указаны интервалы >= 1.0.0, < 1.6.0 и >= 0.8.1, < 0.28.0. Когда в целевой базе потерялась пара условий и итоговый интервал стал >=0.8.1, <1.6.0.
А еще, одна из рекомендаций Docker Scout заменить базовый образ на 23-slim
, добавив 25 уязвимостей.
Лог сканирования Docker Scout образа на основе 23-alpine
❯ docker scout quickview local://vitkhab/serverless:3.40.0-alpine
✓ Image stored for indexing
✓ SBOM obtained from attestation, 841 packages found
✓ Provenance obtained from attestation
✓ Pulled
Target │ local://vitkhab/serverless:3.40.0-alpine │ 0C 0H 1M 0L
digest │ 6bb47c73e8d3 │
Base image │ node:23-alpine │ 0C 0H 0M 0L
Updated base image │ node:22-alpine │ 0C 0H 0M 0L
│ │
❯ docker scout cves local://vitkhab/serverless:3.40.0-alpine
✓ SBOM of image already cached, 841 packages indexed
✗ Detected 1 vulnerable package with 1 vulnerability
## Overview
│ Analyzed Image
────────────────────┼──────────────────────────────────────
Target │ local://vitkhab/serverless:3.40.0-alpine
digest │ 6bb47c73e8d3
platform │ linux/arm64/v8
vulnerabilities │ 0C 0H 1M 0L
size │ 163 MB
packages │ 841
│
Base image │ node:23-alpine
│ 3bc3c0c99ea8
## Packages and Vulnerabilities
0C 0H 1M 0L axios 0.28.1
pkg:npm/axios@0.28.1
Dockerfile (14:14)
RUN npm install -g serverless@${SERVELESS_VERSION} "@yandex-cloud/serverless-plugin@${YC_PLUGIN_VERSION}"
✗ MEDIUM CVE-2023-45857 [OWASP Top Ten 2017 Category A9 - Using Components with Known Vulnerabilities]
https://scout.docker.com/v/CVE-2023-45857
Affected range : >=0.8.1
: <1.6.0
Fixed version : 1.6.0
CVSS Score : 6.5
CVSS Vector : CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N
1 vulnerability found in 1 package
CRITICAL 0
HIGH 0
MEDIUM 1
LOW 0
❯ docker scout recommendations local://vitkhab/serverless:3.40.0-alpine
✓ SBOM of image already cached, 841 packages indexed
Target │ local://vitkhab/serverless:3.40.0-alpine
digest │ 6bb47c73e8d3
## Recommended fixes
Base image is node:23-alpine
Name │ 23-alpine
Digest │ sha256:3bc3c0c99ea8c3f62e11a88bd049981d69d2dc5d0752d1bd80c7b341aee6a8e4
Vulnerabilities │ 0C 0H 0M 0L
Pushed │ 1 week ago
Size │ 57 MB
Packages │ 223
Flavor │ alpine
OS │ 3.21
Runtime │ 22
Refresh base image
Rebuild the image using a newer base image version. Updating this may result in breaking changes.
✓ This image version is up to date.
Change base image
The list displays new recommended tags in descending order, where the top results are rated as most suitable.
Tag │ Details │ Pushed │ Vulnerabilities
───────────────────────────────────────────┼────────────────────────────────────────────┼────────────┼──────────────────────────────
22-alpine │ Benefits: │ 1 week ago │ 0C 0H 0M 0L
Image has same number of vulnerabilities │ • Same OS detected │ │
Also known as: │ • Image is smaller by 1.7 MB │ │
• 22.14.0-alpine │ • Image has same number of vulnerabilities │ │
• 22.14.0-alpine3.21 │ • Image contains equal number of packages │ │
• 22.14-alpine │ │ │
• 22.14-alpine3.21 │ Image details: │ │
• lts-alpine │ • Size: 55 MB │ │
• lts-alpine3.21 │ • Flavor: alpine │ │
• 22-alpine3.21 │ • OS: 3.21 │ │
• jod-alpine │ • Runtime: 22.14.0 │ │
• jod-alpine3.21 │ │ │
│ │ │
│ │ │
slim │ Benefits: │ 1 week ago │ 0C 0H 2M 23L
Tag is preferred tag │ • Tag is preferred tag │ │ +2 +23
Also known as: │ • Tag is using slim variant │ │
• 23.8.0-slim │ • slim was pulled 17K times last month │ │
• 23.8-slim │ │ │
• current-slim │ Image details: │ │
• 23-slim │ • Size: 80 MB │ │
• bookworm-slim │ • Runtime: 22 │ │
• 23-bookworm-slim │ │ │
• 23.8-bookworm-slim │ │ │
• 23.8.0-bookworm-slim │ │ │
• current-bookworm-slim │ │ │
│ │ │
│ │ │
Вывод
Я рад, что Docker из коробки предлагает мне просканировать образ на уязвимости. И даже подсказывает, что можно улучшить в силу своих возможностей. Это сильно лучше, чем ничего. Но в сравнении с Trivy он проигрывает по качеству сканирования и возможностям. Docker Scout не может заменить Trivy в промышленной разработке, но для небольших личных проектов сойдет.