Dockerfile
Dockerfile copied to clipboard
Security : use sed instead of go-replace
the binary go-replace has a lot of security issues See list at the end of the issue.
I suggest to use the sed command instead of go-replace
Real exampel For that particular file : https://github.com/webdevops/Dockerfile/blob/4e854cd7da47e39637fd1e762451d3103e15d2c6/docker/apache/alpine/conf/provision/entrypoint.d/20-apache.sh#L2-L11
I did this :
# Replace markers recursively using sed
find /opt/docker/etc/httpd/ -type f -name '*.conf' -exec sed -i 's|<DOCUMENT_INDEX>|'"$WEB_DOCUMENT_INDEX"'|g' {} +
find /opt/docker/etc/httpd/ -type f -name '*.conf' -exec sed -i 's|<DOCUMENT_ROOT>|'"$WEB_DOCUMENT_ROOT"'|g' {} +
find /opt/docker/etc/httpd/ -type f -name '*.conf' -exec sed -i 's|<ALIAS_DOMAIN>|'"$WEB_ALIAS_DOMAIN"'|g' {} +
find /opt/docker/etc/httpd/ -type f -name '*.conf' -exec sed -i 's|<SERVERNAME>|'"$HOSTNAME"'|g' {} +
find /opt/docker/etc/httpd/ -type f -name '*.conf' -exec sed -i 's|<PHP_SOCKET>|'"$WEB_PHP_SOCKET"'|g' {} +
find /opt/docker/etc/httpd/ -type f -name '*.conf' -exec sed -i 's|<PHP_TIMEOUT>|'"$WEB_PHP_TIMEOUT"'|g' {} +
usr/local/bin/go-replace (gobinary)
Total: 23 (HIGH: 20, CRITICAL: 3)
┌─────────┬────────────────┬──────────┬────────┬───────────────────┬──────────────────────────────────┬──────────────────────────────────────────────────────────────┐
│ Library │ Vulnerability │ Severity │ Status │ Installed Version │ Fixed Version │ Title │
├─────────┼────────────────┼──────────┼────────┼───────────────────┼──────────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ stdlib │ CVE-2023-24538 │ CRITICAL │ fixed │ 1.19.1 │ 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-2879 │ HIGH │ │ │ 1.18.7, 1.19.2 │ golang: archive/tar: 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-41715 │ │ │ │ │ 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 │
└─────────┴────────────────┴──────────┴────────┴───────────────────┴──────────────────────────────────┴──────────────────────────────────────────────────────────────┘
Amazon Inspector is also flagging go-replace for:
- CVE-2023-48795 - golang.org/x/crypto
- CVE-2022-29526 - golang.org/x/sys, golang.org/x/sys
Both of medium severity.
Still an issue in webdevops/php-nginx:8.3-alpine