如何对docker镜像存在的gosu安全漏洞进行修复——筑梦之路
这里以mysql的官方镜像为例进行说明,主要流程为:
1. 分析镜像存在的安全漏洞具体是什么
2. 根据分析结果有针对性地进行修复处理
3. 基于当前镜像进行修复安全漏洞并复核验证
# 镜像地址mysql:8.0.42
安全漏洞现状分析
dockerhub网站上获取该镜像的漏洞信息:
从上图中可知道安全漏洞存在于golang/stdlib 包,总共有59个安全漏洞,该漏洞信息未必就是最新的,因此下面我这里使用trivy工具扫描结果如下:
trivy image mysql:8.0.42
2025-04-19T22:43:32+08:00 INFO [vuln] Vulnerability scanning is enabled
2025-04-19T22:43:32+08:00 INFO [secret] Secret scanning is enabled
2025-04-19T22:43:32+08:00 INFO [secret] If your scanning is slow, please try '--scanners vuln' to disable secret scanning
2025-04-19T22:43:32+08:00 INFO [secret] Please see also https://trivy.dev/v0.61/docs/scanner/secret#recommendation for faster secret detection
2025-04-19T22:43:32+08:00 INFO Detected OS family="oracle" version="9.5"
2025-04-19T22:43:32+08:00 INFO [oracle] Detecting vulnerabilities... os_version="9" pkg_num=114
2025-04-19T22:43:32+08:00 INFO Number of language-specific files num=2
2025-04-19T22:43:32+08:00 INFO [gobinary] Detecting vulnerabilities...
2025-04-19T22:43:32+08:00 INFO [python-pkg] Detecting vulnerabilities...
2025-04-19T22:43:32+08:00 WARN Using severities from other vendors for some vulnerabilities. Read https://trivy.dev/v0.61/docs/scanner/vulnerability#severity-selection for details.Report Summary┌──────────────────────────────────────────────────────────────────────────────────┬────────────┬─────────────────┬─────────┐
│ Target │ Type │ Vulnerabilities │ Secrets │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ mysql:8.0.42 (oracle 9.5) │ oracle │ 0 │ - │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/PyNaCl-1.5.0.dist-info/METADATA │ python-pkg │ 0 │ - │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/PyYAML-6.0.1.dist-info/METADATA │ python-pkg │ 0 │ - │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/antlr4_python3_runtime-4.13.1.dist- │ python-pkg │ 0 │ - │
│ -info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/bcrypt-4.1.3.dist-info/METADATA │ python-pkg │ 0 │ - │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/certifi-2025.1.31.dist-info/METADA- │ python-pkg │ 0 │ - │
│ TA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/cffi-1.17.1.dist-info/METADATA │ python-pkg │ 0 │ - │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/circuitbreaker-2.0.0.dist-info/MET- │ python-pkg │ 0 │ - │
│ ADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/cryptography-44.0.1.dist-info/META- │ python-pkg │ 0 │ - │
│ DATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/oci-2.145.0.dist-info/METADATA │ python-pkg │ 0 │ - │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/paramiko-3.4.0.dist-info/METADATA │ python-pkg │ 0 │ - │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/pip-24.2.dist-info/METADATA │ python-pkg │ 0 │ - │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/pkg_resources/tests/data/my-test-p- │ python-pkg │ 0 │ - │
│ ackage_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/PKG-INFO │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/pkg_resources/tests/data/my-test-p- │ python-pkg │ 0 │ - │
│ ackage_zipped-egg/my_test_package-1.0-py3.7.egg │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/pyOpenSSL-24.3.0.dist-info/METADATA │ python-pkg │ 0 │ - │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/pycparser-2.22.dist-info/METADATA │ python-pkg │ 0 │ - │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/python_dateutil-2.9.0.post0.dist-i- │ python-pkg │ 0 │ - │
│ nfo/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/pytz-2025.1.dist-info/METADATA │ python-pkg │ 0 │ - │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools-73.0.1.dist-info/METADA- │ python-pkg │ 0 │ - │
│ TA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/autocommand-2.2- │ python-pkg │ 0 │ - │
│ .2.dist-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/backports.tarfi- │ python-pkg │ 0 │ - │
│ le-1.2.0.dist-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/importlib_metad- │ python-pkg │ 0 │ - │
│ ata-8.0.0.dist-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/importlib_resou- │ python-pkg │ 0 │ - │
│ rces-6.4.0.dist-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/inflect-7.3.1.d- │ python-pkg │ 0 │ - │
│ ist-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/jaraco.context-- │ python-pkg │ 0 │ - │
│ 5.3.0.dist-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/jaraco.functool- │ python-pkg │ 0 │ - │
│ s-4.0.1.dist-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/jaraco.text-3.1- │ python-pkg │ 0 │ - │
│ 2.1.dist-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/more_itertools-- │ python-pkg │ 0 │ - │
│ 10.3.0.dist-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/packaging-24.1.- │ python-pkg │ 0 │ - │
│ dist-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/platformdirs-4.- │ python-pkg │ 0 │ - │
│ 2.2.dist-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/tomli-2.0.1.dis- │ python-pkg │ 0 │ - │
│ t-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/typeguard-4.3.0- │ python-pkg │ 0 │ - │
│ .dist-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/typing_extensio- │ python-pkg │ 0 │ - │
│ ns-4.12.2.dist-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/wheel-0.43.0.di- │ python-pkg │ 0 │ - │
│ st-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/zipp-3.19.2.dis- │ python-pkg │ 0 │ - │
│ t-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/six-1.17.0.dist-info/METADATA │ python-pkg │ 0 │ - │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/typing_extensions-4.12.2.dist-info- │ python-pkg │ 0 │ - │
│ /METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/local/bin/gosu │ gobinary │ 59 │ - │
└──────────────────────────────────────────────────────────────────────────────────┴────────────┴─────────────────┴─────────┘
Legend:
- '-': Not scanned
- '0': Clean (no security findings detected)usr/local/bin/gosu (gobinary)Total: 59 (UNKNOWN: 0, LOW: 1, MEDIUM: 24, HIGH: 31, CRITICAL: 3)┌─────────┬────────────────┬──────────┬────────┬───────────────────┬──────────────────────────────────┬──────────────────────────────────────────────────────────────┐
│ Library │ Vulnerability │ Severity │ Status │ Installed Version │ Fixed Version │ Title │
├─────────┼────────────────┼──────────┼────────┼───────────────────┼──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ stdlib │ CVE-2023-24538 │ CRITICAL │ fixed │ v1.18.2 │ 1.19.8, 1.20.3 │ golang: html/template: backticks not treated as string │
│ │ │ │ │ │ │ delimiters │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-24538 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-24540 │ │ │ │ 1.19.9, 1.20.4 │ golang: html/template: improper handling of JavaScript │
│ │ │ │ │ │ │ whitespace │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-24540 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2024-24790 │ │ │ │ 1.21.11, 1.22.4 │ golang: net/netip: Unexpected behavior from Is methods for │
│ │ │ │ │ │ │ IPv4-mapped IPv6 addresses │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-24790 │
│ ├────────────────┼──────────┤ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2022-27664 │ HIGH │ │ │ 1.18.6, 1.19.1 │ golang: net/http: handle server errors after sending GOAWAY │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-27664 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2022-28131 │ │ │ │ 1.17.12, 1.18.4 │ golang: encoding/xml: stack exhaustion in Decoder.Skip │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-28131 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2022-2879 │ │ │ │ 1.18.7, 1.19.2 │ golang: archive/tar: github.com/vbatts/tar-split: unbounded │
│ │ │ │ │ │ │ memory consumption when reading headers │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-2879 │
│ ├────────────────┤ │ │ │ ├──────────────────────────────────────────────────────────────┤
│ │ CVE-2022-2880 │ │ │ │ │ golang: net/http/httputil: ReverseProxy should not forward │
│ │ │ │ │ │ │ unparseable query parameters │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-2880 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2022-29804 │ │ │ │ 1.17.11, 1.18.3 │ ELSA-2022-17957: ol8addon security update (IMPORTANT) │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-29804 │
│ ├────────────────┤ │ │ │ ├──────────────────────────────────────────────────────────────┤
│ │ CVE-2022-30580 │ │ │ │ │ golang: os/exec: Code injection in Cmd.Start │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-30580 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2022-30630 │ │ │ │ 1.17.12, 1.18.4 │ golang: io/fs: stack exhaustion in Glob │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-30630 │
│ ├────────────────┤ │ │ │ ├──────────────────────────────────────────────────────────────┤
│ │ CVE-2022-30631 │ │ │ │ │ golang: compress/gzip: stack exhaustion in Reader.Read │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-30631 │
│ ├────────────────┤ │ │ │ ├──────────────────────────────────────────────────────────────┤
│ │ CVE-2022-30632 │ │ │ │ │ golang: path/filepath: stack exhaustion in Glob │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-30632 │
│ ├────────────────┤ │ │ │ ├──────────────────────────────────────────────────────────────┤
│ │ CVE-2022-30633 │ │ │ │ │ golang: encoding/xml: stack exhaustion in Unmarshal │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-30633 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2022-30634 │ │ │ │ 1.17.11, 1.18.3 │ ELSA-2022-17957: ol8addon security update (IMPORTANT) │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-30634 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2022-30635 │ │ │ │ 1.17.12, 1.18.4 │ golang: encoding/gob: stack exhaustion in Decoder.Decode │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-30635 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2022-32189 │ │ │ │ 1.17.13, 1.18.5 │ golang: math/big: decoding big.Float and big.Rat types can │
│ │ │ │ │ │ │ panic if the encoded... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-32189 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2022-41715 │ │ │ │ 1.18.7, 1.19.2 │ golang: regexp/syntax: limit memory used by parsing regexps │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-41715 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2022-41716 │ │ │ │ 1.18.8, 1.19.3 │ Due to unsanitized NUL values, attackers may be able to │
│ │ │ │ │ │ │ maliciously se... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-41716 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2022-41720 │ │ │ │ 1.18.9, 1.19.4 │ golang: os, net/http: avoid escapes from os.DirFS and │
│ │ │ │ │ │ │ http.Dir on Windows │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-41720 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2022-41722 │ │ │ │ 1.19.6, 1.20.1 │ golang: path/filepath: path-filepath filepath.Clean path │
│ │ │ │ │ │ │ traversal │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-41722 │
│ ├────────────────┤ │ │ │ ├──────────────────────────────────────────────────────────────┤
│ │ CVE-2022-41723 │ │ │ │ │ golang.org/x/net/http2: avoid quadratic complexity in HPACK │
│ │ │ │ │ │ │ decoding │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-41723 │
│ ├────────────────┤ │ │ │ ├──────────────────────────────────────────────────────────────┤
│ │ CVE-2022-41724 │ │ │ │ │ golang: crypto/tls: large handshake records may cause panics │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-41724 │
│ ├────────────────┤ │ │ │ ├──────────────────────────────────────────────────────────────┤
│ │ CVE-2022-41725 │ │ │ │ │ golang: net/http, mime/multipart: denial of service from │
│ │ │ │ │ │ │ excessive resource consumption │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-41725 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-24534 │ │ │ │ 1.19.8, 1.20.3 │ golang: net/http, net/textproto: denial of service from │
│ │ │ │ │ │ │ excessive memory allocation │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-24534 │
│ ├────────────────┤ │ │ │ ├──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-24536 │ │ │ │ │ golang: net/http, net/textproto, mime/multipart: denial of │
│ │ │ │ │ │ │ service from excessive resource consumption │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-24536 │
│ ├────────────────┤ │ │ │ ├──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-24537 │ │ │ │ │ golang: go/parser: Infinite loop in parsing │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-24537 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-24539 │ │ │ │ 1.19.9, 1.20.4 │ golang: html/template: improper sanitization of CSS values │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-24539 │
│ ├────────────────┤ │ │ │ ├──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-29400 │ │ │ │ │ golang: html/template: improper handling of empty HTML │
│ │ │ │ │ │ │ attributes │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-29400 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-29403 │ │ │ │ 1.19.10, 1.20.5 │ golang: runtime: unexpected behavior of setuid/setgid │
│ │ │ │ │ │ │ binaries │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-29403 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-39325 │ │ │ │ 1.20.10, 1.21.3 │ golang: net/http, x/net/http2: rapid stream resets can cause │
│ │ │ │ │ │ │ excessive work (CVE-2023-44487) │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-39325 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-45283 │ │ │ │ 1.20.11, 1.21.4, 1.20.12, 1.21.5 │ The filepath package does not recognize paths with a \??\ │
│ │ │ │ │ │ │ prefix as... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-45283 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-45287 │ │ │ │ 1.20.0 │ golang: crypto/tls: Timing Side Channel attack in RSA based │
│ │ │ │ │ │ │ TLS key exchanges.... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-45287 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-45288 │ │ │ │ 1.21.9, 1.22.2 │ golang: net/http, x/net/http2: unlimited number of │
│ │ │ │ │ │ │ CONTINUATION frames causes DoS │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-45288 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2024-34156 │ │ │ │ 1.22.7, 1.23.1 │ encoding/gob: golang: Calling Decoder.Decode on a message │
│ │ │ │ │ │ │ which contains deeply nested structures... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-34156 │
│ ├────────────────┼──────────┤ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2022-1705 │ MEDIUM │ │ │ 1.17.12, 1.18.4 │ golang: net/http: improper sanitization of Transfer-Encoding │
│ │ │ │ │ │ │ header │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-1705 │
│ ├────────────────┤ │ │ │ ├──────────────────────────────────────────────────────────────┤
│ │ CVE-2022-1962 │ │ │ │ │ golang: go/parser: stack exhaustion in all Parse* functions │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-1962 │
│ ├────────────────┤ │ │ │ ├──────────────────────────────────────────────────────────────┤
│ │ CVE-2022-32148 │ │ │ │ │ golang: net/http/httputil: NewSingleHostReverseProxy - omit │
│ │ │ │ │ │ │ X-Forwarded-For not working │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-32148 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2022-41717 │ │ │ │ 1.18.9, 1.19.4 │ golang: net/http: excessive memory growth in a Go server │
│ │ │ │ │ │ │ accepting HTTP/2 requests... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-41717 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-24532 │ │ │ │ 1.19.7, 1.20.2 │ golang: crypto/internal/nistec: specific unreduced P-256 │
│ │ │ │ │ │ │ scalars produce incorrect results │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-24532 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-29406 │ │ │ │ 1.19.11, 1.20.6 │ golang: net/http: insufficient sanitization of Host header │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-29406 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-29409 │ │ │ │ 1.19.12, 1.20.7, 1.21.0-rc.4 │ golang: crypto/tls: slow verification of certificate chains │
│ │ │ │ │ │ │ containing large RSA keys │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-29409 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-39318 │ │ │ │ 1.20.8, 1.21.1 │ golang: html/template: improper handling of HTML-like │
│ │ │ │ │ │ │ comments within script contexts │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-39318 │
│ ├────────────────┤ │ │ │ ├──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-39319 │ │ │ │ │ golang: html/template: improper handling of special tags │
│ │ │ │ │ │ │ within script contexts │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-39319 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-39326 │ │ │ │ 1.20.12, 1.21.5 │ golang: net/http/internal: Denial of Service (DoS) via │
│ │ │ │ │ │ │ Resource Consumption via HTTP requests... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-39326 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-45284 │ │ │ │ 1.20.11, 1.21.4 │ On Windows, The IsLocal function does not correctly detect │
│ │ │ │ │ │ │ reserved de ...... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-45284 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-45289 │ │ │ │ 1.21.8, 1.22.1 │ golang: net/http/cookiejar: incorrect forwarding of │
│ │ │ │ │ │ │ sensitive headers and cookies on HTTP redirect... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-45289 │
│ ├────────────────┤ │ │ │ ├──────────────────────────────────────────────────────────────┤
│ │ CVE-2023-45290 │ │ │ │ │ golang: net/http: golang: mime/multipart: golang: │
│ │ │ │ │ │ │ net/textproto: memory exhaustion in │
│ │ │ │ │ │ │ Request.ParseMultipartForm │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-45290 │
│ ├────────────────┤ │ │ │ ├──────────────────────────────────────────────────────────────┤
│ │ CVE-2024-24783 │ │ │ │ │ golang: crypto/x509: Verify panics on certificates with an │
│ │ │ │ │ │ │ unknown public key algorithm... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-24783 │
│ ├────────────────┤ │ │ │ ├──────────────────────────────────────────────────────────────┤
│ │ CVE-2024-24784 │ │ │ │ │ golang: net/mail: comments in display names are incorrectly │
│ │ │ │ │ │ │ handled │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-24784 │
│ ├────────────────┤ │ │ │ ├──────────────────────────────────────────────────────────────┤
│ │ CVE-2024-24785 │ │ │ │ │ golang: html/template: errors returned from MarshalJSON │
│ │ │ │ │ │ │ methods may break template escaping │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-24785 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2024-24789 │ │ │ │ 1.21.11, 1.22.4 │ golang: archive/zip: Incorrect handling of certain ZIP files │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-24789 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2024-24791 │ │ │ │ 1.21.12, 1.22.5 │ net/http: Denial of service due to improper 100-continue │
│ │ │ │ │ │ │ handling in net/http │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-24791 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2024-34155 │ │ │ │ 1.22.7, 1.23.1 │ go/parser: golang: Calling any of the Parse functions │
│ │ │ │ │ │ │ containing deeply nested literals... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-34155 │
│ ├────────────────┤ │ │ │ ├──────────────────────────────────────────────────────────────┤
│ │ CVE-2024-34158 │ │ │ │ │ go/build/constraint: golang: Calling Parse on a "// +build" │
│ │ │ │ │ │ │ build tag line with... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-34158 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2024-45336 │ │ │ │ 1.22.11, 1.23.5, 1.24.0-rc.2 │ golang: net/http: net/http: sensitive headers incorrectly │
│ │ │ │ │ │ │ sent after cross-domain redirect │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-45336 │
│ ├────────────────┤ │ │ │ ├──────────────────────────────────────────────────────────────┤
│ │ CVE-2024-45341 │ │ │ │ │ golang: crypto/x509: crypto/x509: usage of IPv6 zone IDs can │
│ │ │ │ │ │ │ bypass URI name... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-45341 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2025-22866 │ │ │ │ 1.22.12, 1.23.6, 1.24.0-rc.3 │ crypto/internal/nistec: golang: Timing sidechannel for P-256 │
│ │ │ │ │ │ │ on ppc64le in crypto/internal/nistec │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2025-22866 │
│ ├────────────────┤ │ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2025-22871 │ │ │ │ 1.23.8, 1.24.2 │ net/http: Request smuggling due to acceptance of invalid │
│ │ │ │ │ │ │ chunked data in net/http... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2025-22871 │
│ ├────────────────┼──────────┤ │ ├──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2022-30629 │ LOW │ │ │ 1.17.11, 1.18.3 │ golang: crypto/tls: session tickets lack random │
│ │ │ │ │ │ │ ticket_age_add │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-30629 │
└─────────┴────────────────┴──────────┴────────┴───────────────────┴──────────────────────────────────┴──────────────────────────────────────────────────────────────┘
从该扫描报告中可知,总共发现了59个安全漏洞,存在于文件usr/local/bin/gosu中:
Total: 59 (UNKNOWN: 0, LOW: 1, MEDIUM: 24, HIGH: 31, CRITICAL: 3)
漏洞如何处理修复
处理分析思路
gosu是一个二进制文件,源代码托管在https://github.com/tianon/gosu.git,该应用是使用golang语言编写,主要用于在容器内让应用以指定用户运行,该项目最近一次更新是3个月前,目前使用的golang版本是1.20,而截至2025年4月19日,golang最新版是1.24.2,因此需要使用该项目源码进行升级更新,使用golang 1.24.2编译二进制文件替换镜像内gosu文件,重新构建镜像。
更加轻量级的身份切换执行工具su-exec:
简单的身份切换和执行工具su-exec —— 筑梦之路-CSDN博客
源码改造并编译
git clone https://github.com/tianon/gosu.git# 修改文件go.mod中的golang使用的版本为1.24.2go 1.20 改为go 1.24.2# 修改version.go文件1.17 改为 1.24# 编译二进制文件,一定要在linux操作系统上编译go build# 检查编译结果./gosu versionUsage: ./gosu user-spec command [args]eg: ./gosu tianon bash./gosu nobody:root bash -c 'whoami && id'./gosu 1000:1 id./gosu version: 1.24 (go1.24.2 on linux/amd64; gc)
./gosu license: Apache-2.0 (full text at https://github.com/tianon/gosu)
至此,就得到了编译生成的二进制文件gosu。
编译其他平台架构的二进制文件
# 编译 ARMv7 架构(32位)
GOOS=linux GOARCH=arm GOARM=7 CGO_ENABLED=0 go build -o output_armv7# 编译 ARMv8(ARM64)架构(64位)
GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -o output_arm64关键参数说明:
GOOS=linux:目标操作系统为 Linux。
GOARCH=arm/arm64:目标 CPU 架构为 ARMv7 或 ARM64。
GOARM=7(仅限 ARMv7):指定 ARM 版本,默认为 ARMv6,建议显式声明。
CGO_ENABLED=0:禁用 CGO 避免依赖动态库,确保纯静态编译
镜像漏洞修复验证
重构建新镜像
# 编写Dockerfile文件cat DockerfileFROM mysql:8.0.42
COPY gosu /usr/local/bin/gosu
RUN chmod +x /usr/local/bin/gosu
ENV TZ=Asia/Shanghai \LANG=C.UTF-8# 重新构建镜像docker build -t mysql:8.0.42-20250419 .
检查修复验证
docker tag mysql:8.0.42-20250419 mysql:8.0.42-testtrivy image mysql:8.0.42-test2025-04-19T23:18:13+08:00 INFO [vuln] Vulnerability scanning is enabled
2025-04-19T23:18:13+08:00 INFO [secret] Secret scanning is enabled
2025-04-19T23:18:13+08:00 INFO [secret] If your scanning is slow, please try '--scanners vuln' to disable secret scanning
2025-04-19T23:18:13+08:00 INFO [secret] Please see also https://trivy.dev/v0.61/docs/scanner/secret#recommendation for faster secret detection
2025-04-19T23:18:13+08:00 INFO Detected OS family="oracle" version="9.5"
2025-04-19T23:18:13+08:00 INFO [oracle] Detecting vulnerabilities... os_version="9" pkg_num=114
2025-04-19T23:18:13+08:00 INFO Number of language-specific files num=2
2025-04-19T23:18:13+08:00 INFO [gobinary] Detecting vulnerabilities...
2025-04-19T23:18:13+08:00 INFO [python-pkg] Detecting vulnerabilities...Report Summary┌──────────────────────────────────────────────────────────────────────────────────┬────────────┬─────────────────┬─────────┐
│ Target │ Type │ Vulnerabilities │ Secrets │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ mysql:8.0.42-test (oracle 9.5) │ oracle │ 0 │ - │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/PyNaCl-1.5.0.dist-info/METADATA │ python-pkg │ 0 │ - │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/PyYAML-6.0.1.dist-info/METADATA │ python-pkg │ 0 │ - │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/antlr4_python3_runtime-4.13.1.dist- │ python-pkg │ 0 │ - │
│ -info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/bcrypt-4.1.3.dist-info/METADATA │ python-pkg │ 0 │ - │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/certifi-2025.1.31.dist-info/METADA- │ python-pkg │ 0 │ - │
│ TA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/cffi-1.17.1.dist-info/METADATA │ python-pkg │ 0 │ - │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/circuitbreaker-2.0.0.dist-info/MET- │ python-pkg │ 0 │ - │
│ ADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/cryptography-44.0.1.dist-info/META- │ python-pkg │ 0 │ - │
│ DATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/oci-2.145.0.dist-info/METADATA │ python-pkg │ 0 │ - │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/paramiko-3.4.0.dist-info/METADATA │ python-pkg │ 0 │ - │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/pip-24.2.dist-info/METADATA │ python-pkg │ 0 │ - │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/pkg_resources/tests/data/my-test-p- │ python-pkg │ 0 │ - │
│ ackage_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/PKG-INFO │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/pkg_resources/tests/data/my-test-p- │ python-pkg │ 0 │ - │
│ ackage_zipped-egg/my_test_package-1.0-py3.7.egg │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/pyOpenSSL-24.3.0.dist-info/METADATA │ python-pkg │ 0 │ - │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/pycparser-2.22.dist-info/METADATA │ python-pkg │ 0 │ - │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/python_dateutil-2.9.0.post0.dist-i- │ python-pkg │ 0 │ - │
│ nfo/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/pytz-2025.1.dist-info/METADATA │ python-pkg │ 0 │ - │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools-73.0.1.dist-info/METADA- │ python-pkg │ 0 │ - │
│ TA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/autocommand-2.2- │ python-pkg │ 0 │ - │
│ .2.dist-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/backports.tarfi- │ python-pkg │ 0 │ - │
│ le-1.2.0.dist-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/importlib_metad- │ python-pkg │ 0 │ - │
│ ata-8.0.0.dist-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/importlib_resou- │ python-pkg │ 0 │ - │
│ rces-6.4.0.dist-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/inflect-7.3.1.d- │ python-pkg │ 0 │ - │
│ ist-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/jaraco.context-- │ python-pkg │ 0 │ - │
│ 5.3.0.dist-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/jaraco.functool- │ python-pkg │ 0 │ - │
│ s-4.0.1.dist-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/jaraco.text-3.1- │ python-pkg │ 0 │ - │
│ 2.1.dist-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/more_itertools-- │ python-pkg │ 0 │ - │
│ 10.3.0.dist-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/packaging-24.1.- │ python-pkg │ 0 │ - │
│ dist-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/platformdirs-4.- │ python-pkg │ 0 │ - │
│ 2.2.dist-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/tomli-2.0.1.dis- │ python-pkg │ 0 │ - │
│ t-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/typeguard-4.3.0- │ python-pkg │ 0 │ - │
│ .dist-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/typing_extensio- │ python-pkg │ 0 │ - │
│ ns-4.12.2.dist-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/wheel-0.43.0.di- │ python-pkg │ 0 │ - │
│ st-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/setuptools/_vendor/zipp-3.19.2.dis- │ python-pkg │ 0 │ - │
│ t-info/METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/six-1.17.0.dist-info/METADATA │ python-pkg │ 0 │ - │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/lib/mysqlsh/lib/python3.13/site-packages/typing_extensions-4.12.2.dist-info- │ python-pkg │ 0 │ - │
│ /METADATA │ │ │ │
├──────────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ usr/local/bin/gosu │ gobinary │ 0 │ - │
└──────────────────────────────────────────────────────────────────────────────────┴────────────┴─────────────────┴─────────┘
Legend:
- '-': Not scanned
- '0': Clean (no security findings detected)
再次扫描就没有发现安全漏洞。
特别说明:gosu广泛用于各官方镜像中,比如redis、mongo、postgres等,以下列举了几个官方镜像,大家可以自行验证,因此解决gosu的安全漏洞意义还是比较大的。
redis:6-alpine
mongo:8.0.6-noble
postgres:15-alpine
2025年4月19日
扩展阅读:
https://segmentfault.com/a/1190000023065990?utm_source=sf-similar-article
https://segmentfault.com/a/1190000042389426
相关文章:
如何对docker镜像存在的gosu安全漏洞进行修复——筑梦之路
这里以mysql的官方镜像为例进行说明,主要流程为: 1. 分析镜像存在的安全漏洞具体是什么 2. 根据分析结果有针对性地进行修复处理 3. 基于当前镜像进行修复安全漏洞并复核验证 # 镜像地址mysql:8.0.42 安全漏洞现状分析 dockerhub网站上获取该镜像的…...
OpenCV 04.19 练习
1. 创建一个 PyQt 应用程序,该应用程序能够: 1.使用 OpenCV 加载一张图像。 2.在 PyQt 的窗口中显示这张图像。 3.提供四个按钮(QPushButton): - 一个用于将图像转换为灰度图 - 一个用于将图像恢复为原始彩色图 - 一个…...
uv:重新定义Python开发效率的下一代工具链
在Python生态系统中,包管理和项目工具链的复杂性一直是开发者面临的一大挑战。从依赖管理、虚拟环境创建到多版本Python切换,传统的工具链(如pip、virtualenv、poetry等)虽然功能强大,但操作繁琐、性能不足的问题长期存在。而uv的出现,以颠覆性的速度和功能集成,为Pytho…...
【Easylive】Gateway模块 bootstrap.yml 解析
【Easylive】项目常见问题解答(自用&持续更新中…) 汇总版 Gateway模块 bootstrap.yml 常规解析 该配置文件定义了 Spring Cloud Gateway 的核心配置,包括 环境配置、服务注册、动态路由规则 等。以下是逐项解析: 1. 基础配…...
Warcraft Logs [Classic] [WCL] Usage Wizard <HTOC>
HTOC(十字军的试炼)副本中各个BOSS的ID如下: 629 - 诺森德野兽 633 - 加拉克苏斯大王 637 - 派系冠军 641 - 瓦格里双子 645 - 阿努巴拉克 encounterID!637 and encounterID!641 encounterID NOT IN (637,641) 伤害 …...
多模态大语言模型arxiv论文略读(二十八)
MM-SAP: A Comprehensive Benchmark for Assessing Self-Awareness of Multimodal Large Language Models in Perception ➡️ 论文标题:MM-SAP: A Comprehensive Benchmark for Assessing Self-Awareness of Multimodal Large Language Models in Perception ➡️…...
JavaScript数据类型简介
在JavaScript中,理解不同的数据类型是掌握这门语言的基础。数据类型决定了变量可以存储什么样的值以及这些值能够执行的操作。JavaScript支持多种数据类型,每种都有其特定的用途和特点。本文将详细介绍JavaScript中的主要数据类型,并提供一些…...
CasualLanguage Model和Seq2Seq模型的区别
**问题1:**Causal Language Modeling 和 Conditional Generation 、Sequence Classification 的区别是什么? 因果语言模型(Causal Language Model): 预测给定文本序列中的下一个字符,一般用于文本生成、补全句子等,模型…...
在Qt和OSG中动态改变部分3D模型数据
要在Qt和OSG环境中导入3D模型并只对部分数据进行动态改变,你可以采用以下方法: 基本实现步骤 加载模型:使用OSG的读取器加载3D模型文件 访问特定部分:识别并获取模型中需要修改的部分 动态修改:在Qt界面或逻辑中设置修改这些部分的机制 更新显示:确保修改后的模型能够实…...
命令update-alternatives
❯ which pip /home/ying/anaconda3/bin/pipying192 ~ [2]> which pip /usr/bin/pip使用update-alternatives对他们进行管理和切换 快捷方式 和 实际路径不可以相同 所以我这边选择了/usr/local/bin目录作为介质存储快捷方式,另外该快捷方式会自己创建我们只需选…...
10.thinkphp的响应
响应输出 响应操作 1. 响应输出,有好几种:包括return、json()和view()等等; 2. 默认输出方式是以html格式输出,如果你发起json请求,则输出json; 3. 而背后是response对象,可以用response()输…...
【技术派后端篇】技术派中的白名单机制:基于Redis的Set实现
在技术派社区中,为了保证文章的质量和社区的良性发展,所有发布的文章都需要经过审核。然而,并非所有作者的文章都需要审核,我们通过白名单机制来优化这一流程。本文将详细介绍技术派中白名单的实现方式,以及如何利用Re…...
Keil A51汇编伪指令
以下是 Keil A51 汇编器支持的常用伪指令 及其详细说明,涵盖代码结构、数据定义、条件编译等关键功能,结合实际应用场景进行分类和示例: 一、程序结构与地址控制 伪指令功能语法示例说明ORG设置代码/数据起始地址ORG 0000H后续代码从指定地址…...
Windows上安装FFmpeg的详细指南
1.下载FFmpeg 访问FFmpeg官方下载页面:https://ffmpeg.org/download.html 点击"Windows builds from gyan.dev"或"Windows builds by BtbN" gyan.dev版本:https://www.gyan.dev/ffmpeg/builds/ BtbN版本:https://githu…...
jmeter利用csv进行参数化和自动断言
1.测试数据 csv测试数据如下(以注册接口为例) 2.jemer参数化csv设置 打开 jmeter,添加好线程组、HTTP信息头管理器、CSV 数据文件设置、注册请求、响应断言、查看结果树 1) CSV 数据文件设置 若 CSV 中数据包含中文,…...
《Android 应用开发基础教程》——第二章:Activity 与生命周期详解
目录 第二章:Activity 与生命周期详解 2.1 什么是 Activity? 作用: 2.2 创建一个 Activity 示例代码 Manifest 注册: 2.3 Activity 生命周期(Life Cycle) 生命周期图解: 2.4 生命周期代…...
[Java]反射、String类补充
目录 1、反射定义 2、用途(了解) 3、反射相关的类 4、Class类(反射机制的起源) 4.1、相关方法 5、反射示例 5.1、获取Class对象 5.2、反射的使用 6、反射优点和缺点 7、String类补充 7.1、创建对象的思考 8、字符串常量池 9、再谈String对象创建 10、intern方法 …...
word表格批量操作——宏
word中所有表格代码 这个是表格的模板代码 Sub 表格通用代码() For i ActiveDocument.Tables.Count To 1 Step -1ActiveDocument.Tables (i) Next End Sub1、根据内容自动调整表格 Sub 表格适用内容() For i ActiveDocument.Tables.Count To 1 Step -1ActiveDocument.Tabl…...
eSTK.me
eSTK.me 调用 USIM 卡的 Applet 实现在 iOS 内自助切换 Profile。写卡仍然需要借助硬件读卡器或者兼容 eSIM 的 Android 手机。支持国行 iPhone。 eSTK.me(固件 v2.x 及以后的版本)基于 ETSI 的 Bearer Independent Protocol (BIP) 协议,使…...
四级英语备考指南
一、引言 大学英语四级考试是对大学生英语综合能力的一次重要检验。无论是为了学业要求,还是提升自身竞争力,顺利通过四级考试都有着重要意义。本文将为大家详细介绍四级英语的备考策略,帮助大家高效备考,取得理想成绩。 二、了…...
Java Web 之 互联网协议 100问
HTTP是什么? HTTP(HyperText Transfer Protocol,超文本传输协议)是互联网上应用最广泛的协议之一,用于在客户端(如浏览器)和服务器之间传输数据。它是 Web 通信的基础,支持浏览器访…...
【单倍型理解及计算系列之二】单倍型基本概念以及其与遗传定位中Bin的定义区别
问题:如何理解单倍型,与遗传定位中Bin的定义区别: 简而言之:就是单倍型是基于LD,通常为连锁不平衡(LD)较高的区域形成。但bin是人为划分的,如以固定SNP数量/固定长度设置࿰…...
ArcPy Mapping 模块基础
在地理信息系统(GIS)的应用中,地图制作是一个非常重要的环节。无论是生成用于展示的静态地图,还是动态更新的地图服务,都需要高效且灵活的工具来实现。ArcPy 提供了强大的mapping模块,可以帮助用户自动化地…...
AcWing 11:背包问题求方案数 ← 0-1背包
【题目来源】 https://www.acwing.com/problem/content/11/ 【题目描述】 有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。 第 i 件物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总…...
Redis增删改查
### 进入redis控制台 redis-cli --raw #加上raw,防止中文乱码### 增 127.0.0.1:6379> LPUSH list0 "hello" #增加一个list 1 127.0.0.1:6379> LRANGE list0 0 -1 #查看list hello### 删 127.0.0.1:6379> DEL list0 #删除list 1 127.0.0.1:6379> LRANG…...
多道程序和多任务操作系统区别
多道程序 vs. 多道任务:对比分析 ✅ 共同点 方面共同特征核心机制都依赖于进程/任务切换执行需求实现多个程序或任务"并发"执行系统支持都需要操作系统的支持(如调度算法、内存管理)本质目标提高资源利用率(CPU不空转…...
【MySQL】MySQL建立索引不知道注意什么?
基本原则: 1.选择性原则: 选择高选择性的列建立索引(该列有大量不同的值) 2.适度原则:不是越多越好,每个索引都会增加写入开销 列选择注意事项: 1.常用查询条件列:WHERE字句中频繁使用的列 2.连接操作列…...
区块链木材业务服务平台:商贸物流新变革
区块链木材业务服务平台:商贸物流新变革 在全球商贸物流行业不断发展的当下,木材贸易作为其中重要的一环,面临着诸多挑战。区块链木材业务服务平台的出现,为木材商贸物流领域带来了全新的解决方案,正逐步引领行业走向…...
【AI提示词】经济学家
提示说明 经济学家致力于提供深入的经济分析和预测,帮助用户理解经济趋势、政策影响以及市场动态。他们通过专业的经济模型和数据分析,为用户在投资、决策等方面提供指导。 提示词 # 角色 经济学家## 注意 1. 经济学家专家需要具备深入分析经济现象的…...
C++用于保留浮点数的两位小数,使用宏定义方法(可兼容低版本Visual Studio)
文章目录 一、 描述二、 样例二、 结果输出 一、 描述 这个宏定义(可放入.h头文件里)使用基本的数学运算,几乎兼容所有版本的VS,以下可对正数做四舍五入: #define ROUND_TO_TWO(x) ( (floor((x) * 100 0.5) / 100) …...
kimi+deepseek制作PPT
文章目录 KIMI简介一、基本信息二、核心特点三、服务理念 Deepseek简介PPT关键词提示 KIMI简介 KIMI官网:Kimi - 会推理解析,能深度思考的AI助手 一、基本信息 名称 :KIMI开发团队 :月之暗面科技有限公司上线时间 :…...
Linux-进度条小程序
1. 回车和换行的差异 在输出文本时,回车和换行符的作用是非常不同的。了解它们的行为有助于我们控制输出的方式。 回车(\r):回车符将光标移到当前行的开头,但并不会自动换行。它的作用是覆盖当前行的内容。 换行&…...
Day2—3:前端项目uniapp壁纸实战
接下来我们做一个专题精选 <view class"theme"><common-title><template #name>专题精选</template><template #custom><navigator url"" class"more">More</navigator></template></common…...
什么是超类实体和派生属性
在数据库设计(尤其是实体-关系模型(ER模型))和面向对象建模中,超类实体和派生属性是两个重要的概念,分别用于描述实体间的继承关系和属性的动态计算特性。以下是它们的详细解释和对比: 一、超类…...
性能比拼: Elixir vs Go(第二轮)
本内容是对知名性能评测博主 Anton Putra Elixir vs Go (Golang) Performance Benchmark (Round 2) 内容的翻译与整理, 有适当删减, 相关指标和结论以原作为准 这是第二轮关于 Elixir 和 Go 的对比测试。我收到了一份来自 Elixir 创作者的 Pull Request ,并且我认为…...
微信、抖音、小红书emoji符号大全
1、Emoji 日常符号 👣👀👁️👄💋👂🦻👃👅🧠🫀🫁🦷🦴💪🦾🦿🦵&a…...
【大模型】 LangChain框架 -LangChain实现问答系统
LangChain 介绍与使用方法 1. 什么是 LangChain?2. LangChain 的主要功能3. 如何使用 LangChain?3.1 环境准备3.2 基本使用示例3.2.1 简单的问答系统3.2.2 结合外部工具 3.3 高级用法 4. 常见问题及解决方法4.1 安装问题4.2 运行问题4.3 性能问题 5. 实战…...
k8s安装kubeadm
使用kubeadm安装部署k8s集群 目前生产部署Kubernetes 集群主要有两种方式: kubeadm Kubeadm 是一个K8s 部署工具,提供kubeadm init 和kubeadm join,用于快速部署Kubernetes 集群。 官方地址:https://kubernetes.io/docs/refer…...
五、小白如何用Pygame制作一款跑酷类游戏(主角跳跃和滑行动作的实现)
五、小白如何用Pygame制作一款跑酷类游戏(主角跳跃和滑行动作的实现) 文章目录 五、小白如何用Pygame制作一款跑酷类游戏(主角跳跃和滑行动作的实现)前言一、添加主角的跳跃和滑行图片素材二、代码部分1.在走路状态时按下按键发生…...
LLM MCP模型上下文协议快速入门(for Java)
什么是MCP Model Control Protocol(MCP)是由AI研究机构Anthropic在2023年第二季度首次提出的新型协议规范,旨在解决大语言模型LLM应用中的上下文管理难题。作为LLM交互领域的创新标准,MCP协议在发布后短短一年内已进行了多次更新…...
CTF--秋名山车神
一、原网页: 二、步骤: 1.尝试用计算器计算: 计算器溢出,无法正常计算 2.使用python计算: 得出计算结果为:1864710043732437134701060769 3.多次刷新页面: 发现变量为value,要用pos…...
Windows桌面图标变白的解决方案
一、问题原因 桌面图标变白通常是由于系统图标缓存文件(IconCache.db)损坏或系统图表示现异常导致。图标缓存是Windows用于存储应用程序和文件夹图标图像的临时文件,当该文件损坏或系统未正确更新缓存时,图标会因无法加载原始图像…...
Linux学习——信号量
1.头文件-semaphore.h 2.信号量类型 sem_t sem; 加强版的互斥锁,是并行的 3.主要函数 初始化信号量 sem_init(sem_t *sem,int pshared,unsigned int value); 第一个参数 信号量类型 第二个参数 0-线程同步 1-进程同步 …...
蓝桥杯 蜗牛 动态规划
16.蜗牛 - 蓝桥云课https://www.lanqiao.cn/problems/4985/learning/?page1&first_category_id1&second_category_id3&sortdifficulty&asc1&tags%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92,%E9%80%92%E6%8E%A8,01%E8%83%8C%E5%8C%85,%E5%8C%BA%E9%97%B4DP,%E6…...
FiftyOne 管理数据
FiftyOne 管理数据 下载安装FiftyOne https://docs.voxel51.com/ 下载 coco-2017 使用 FiftyOne 查看 import fiftyone as fo import fiftyone.zoo as foz# 自定义路径 - 修改这些变量以匹配你的环境 image_path /media/wmx/ws3/AI/data/coco2017/train2017 annotations_…...
解决echarts饼图label显示不全的问题
解决办法 添加如下配置: labelLayout: {hideOverlap: false},...
2000-2017年各省城市天然气供气总量数据
2000-2017年各省城市天然气供气总量数据 1、时间:2000-2017年 2、来源:国家统计局、能源年鉴 3、指标:行政区划代码、城市、年份、城市天然气供气总量 4、范围:31省 5、指标说明:城市天然气供气总量是指在一定时间…...
Linux教程-常用命令系列二
文章目录 1. 系统管理常用命令1. useradd - 创建用户账户功能基本用法常用选项示例 2. passwd - 管理用户密码功能基本用法常用选项示例 3. kill - 终止进程功能基本用法常用信号示例 4. date - 显示和设置系统时间功能基本用法常用选项时间格式示例 5. bc - 高精度计算器功能基…...
苍穹外卖(菜品管理)
菜品管理 公共字段自动填充 实现思路 代码开发 自定义注解 AutoFill 自定义切面 AutoFillAspect 完善自定义切面 AutoFillAspect 的 autoFill 方法 在Mapper接口的方法上加入 AutoFill 注解 将业务层为公共字段赋值的代码注释掉 功能测试 新增菜品 需求分析和…...
Cril 截取字段-生成hostname
有些event 是不规则,需要用regular express 来加工一下, 下面说一下sample 数据: 2021-10-26 17:00:12 PDT sample log data from host eagle1 2021-10-26 17:00:12 PDT sample log data from host eagle2 2021-10-26 17:00:12 PDT sample log data from host eagle3 2021…...