mirror of
https://github.com/argoproj/argo-cd.git
synced 2026-02-21 18:18:48 +01:00
Compare commits
126 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fc3eaec6f4 | ||
|
|
09e026d43f | ||
|
|
c0271bdccf | ||
|
|
9b27f353a9 | ||
|
|
aaeef297a9 | ||
|
|
5fc009edbd | ||
|
|
12d0fa4c39 | ||
|
|
cff4614c69 | ||
|
|
711e544581 | ||
|
|
c7441251a7 | ||
|
|
a79e43bb1b | ||
|
|
997223d0a5 | ||
|
|
8b070b5a31 | ||
|
|
10acf7b09c | ||
|
|
1c7d767977 | ||
|
|
c867f0675e | ||
|
|
86b2dde8e4 | ||
|
|
d3d228f19d | ||
|
|
e8f37d79aa | ||
|
|
93d3fe60ae | ||
|
|
fba15018bd | ||
|
|
57562de259 | ||
|
|
3b8b4c16dd | ||
|
|
ff20becb13 | ||
|
|
67a13bbe6e | ||
|
|
140fbccd09 | ||
|
|
b9cbfadf15 | ||
|
|
7ac6a6b500 | ||
|
|
afe1eaad6a | ||
|
|
bb21fcb3db | ||
|
|
73be2c9912 | ||
|
|
158e2883f6 | ||
|
|
0137050ef5 | ||
|
|
21ea86a827 | ||
|
|
524032ee39 | ||
|
|
5bb97700c4 | ||
|
|
0a170ca457 | ||
|
|
1523d89df8 | ||
|
|
0c7de210ae | ||
|
|
2c7d99b9ae | ||
|
|
4b53a60b11 | ||
|
|
114a4bf140 | ||
|
|
b20dbf5cf5 | ||
|
|
02bba2397b | ||
|
|
cb21483053 | ||
|
|
279a58b05b | ||
|
|
e01509a31f | ||
|
|
b40b62f1b2 | ||
|
|
ad49186498 | ||
|
|
f000a73a3a | ||
|
|
2a6f07aea2 | ||
|
|
16042390d7 | ||
|
|
70a9f9047e | ||
|
|
0366e0153d | ||
|
|
0a34eb18e8 | ||
|
|
787dccd85a | ||
|
|
16b2fd3cc9 | ||
|
|
b72f6df58a | ||
|
|
91fcd86bf1 | ||
|
|
2c1a8a9a22 | ||
|
|
64b29fee1b | ||
|
|
148d8da7a9 | ||
|
|
f13bb9e2e9 | ||
|
|
1e6a4c6128 | ||
|
|
2873aa43f4 | ||
|
|
e7b4256474 | ||
|
|
b0b8353e26 | ||
|
|
2848ca2607 | ||
|
|
9b7445cb18 | ||
|
|
9b2cdc2ccf | ||
|
|
301b80b512 | ||
|
|
504da424c2 | ||
|
|
24cc8578fd | ||
|
|
b895da4577 | ||
|
|
5a62dbd336 | ||
|
|
c7a0978271 | ||
|
|
872e1f2f5a | ||
|
|
fe565dc2d9 | ||
|
|
1b65c3f330 | ||
|
|
fdd2e982c5 | ||
|
|
49235d5525 | ||
|
|
0cf224c958 | ||
|
|
664224fe14 | ||
|
|
351cab4c2a | ||
|
|
c615c8a56d | ||
|
|
048275cb93 | ||
|
|
df8f70aac8 | ||
|
|
40ce041aa7 | ||
|
|
68df7d8dda | ||
|
|
d9004fc748 | ||
|
|
84680ba0ff | ||
|
|
9f5111d474 | ||
|
|
cd3ce58df4 | ||
|
|
39f9565e34 | ||
|
|
2d9f13d0bb | ||
|
|
b735c00761 | ||
|
|
aae9a24cbd | ||
|
|
dde489db1c | ||
|
|
d0b20b06dc | ||
|
|
2ccb96086f | ||
|
|
ba4c562508 | ||
|
|
701b3403c5 | ||
|
|
f927aaeddd | ||
|
|
e0ffec8a63 | ||
|
|
a04d634fba | ||
|
|
0b076c13a0 | ||
|
|
d33981ffa2 | ||
|
|
2b62aa7d92 | ||
|
|
dfbcf757b9 | ||
|
|
d5feafc654 | ||
|
|
f47a5f90c2 | ||
|
|
faa01bb6f9 | ||
|
|
1e1a744604 | ||
|
|
aca9ed2030 | ||
|
|
b83554fca8 | ||
|
|
3275337a26 | ||
|
|
89b6fe01a6 | ||
|
|
1fe1a0060b | ||
|
|
de72cb1686 | ||
|
|
2e24cdc7ea | ||
|
|
ebf367497b | ||
|
|
277c6adaf1 | ||
|
|
20ce840a2d | ||
|
|
20776419d8 | ||
|
|
2bf51f401d | ||
|
|
6a4468ce6b |
72
.github/workflows/ci-build.yaml
vendored
72
.github/workflows/ci-build.yaml
vendored
@@ -27,9 +27,9 @@ jobs:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # v3.2.0
|
||||
- name: Setup Golang
|
||||
uses: actions/setup-go@v3
|
||||
uses: actions/setup-go@d0a58c1c4d2b25278816e339b944508c875f3613 # v3.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOLANG_VERSION }}
|
||||
- name: Download all Go modules
|
||||
@@ -45,13 +45,13 @@ jobs:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # v3.2.0
|
||||
- name: Setup Golang
|
||||
uses: actions/setup-go@v3
|
||||
uses: actions/setup-go@d0a58c1c4d2b25278816e339b944508c875f3613 # v3.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOLANG_VERSION }}
|
||||
- name: Restore go build cache
|
||||
uses: actions/cache@v1
|
||||
uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 # v3.0.11
|
||||
with:
|
||||
path: ~/.cache/go-build
|
||||
key: ${{ runner.os }}-go-build-v1-${{ github.run_id }}
|
||||
@@ -69,13 +69,13 @@ jobs:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # v3.2.0
|
||||
- name: Setup Golang
|
||||
uses: actions/setup-go@v3
|
||||
uses: actions/setup-go@d0a58c1c4d2b25278816e339b944508c875f3613 # v3.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOLANG_VERSION }}
|
||||
- name: Run golangci-lint
|
||||
uses: golangci/golangci-lint-action@v3
|
||||
uses: golangci/golangci-lint-action@0ad9a0988b3973e851ab0a07adf248ec2e100376 # v3.3.1
|
||||
with:
|
||||
version: v1.46.2
|
||||
args: --timeout 10m --exclude SA5011 --verbose
|
||||
@@ -92,11 +92,11 @@ jobs:
|
||||
- name: Create checkout directory
|
||||
run: mkdir -p ~/go/src/github.com/argoproj
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # v3.2.0
|
||||
- name: Create symlink in GOPATH
|
||||
run: ln -s $(pwd) ~/go/src/github.com/argoproj/argo-cd
|
||||
- name: Setup Golang
|
||||
uses: actions/setup-go@v3
|
||||
uses: actions/setup-go@d0a58c1c4d2b25278816e339b944508c875f3613 # v3.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOLANG_VERSION }}
|
||||
- name: Install required packages
|
||||
@@ -116,7 +116,7 @@ jobs:
|
||||
run: |
|
||||
echo "/usr/local/bin" >> $GITHUB_PATH
|
||||
- name: Restore go build cache
|
||||
uses: actions/cache@v1
|
||||
uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 # v3.0.11
|
||||
with:
|
||||
path: ~/.cache/go-build
|
||||
key: ${{ runner.os }}-go-build-v1-${{ github.run_id }}
|
||||
@@ -133,12 +133,12 @@ jobs:
|
||||
- name: Run all unit tests
|
||||
run: make test-local
|
||||
- name: Generate code coverage artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
uses: actions/upload-artifact@83fd05a356d7e2593de66fc9913b3002723633cb # v3.1.1
|
||||
with:
|
||||
name: code-coverage
|
||||
path: coverage.out
|
||||
- name: Generate test results artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
uses: actions/upload-artifact@83fd05a356d7e2593de66fc9913b3002723633cb # v3.1.1
|
||||
with:
|
||||
name: test-results
|
||||
path: test-results/
|
||||
@@ -155,11 +155,11 @@ jobs:
|
||||
- name: Create checkout directory
|
||||
run: mkdir -p ~/go/src/github.com/argoproj
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # v3.2.0
|
||||
- name: Create symlink in GOPATH
|
||||
run: ln -s $(pwd) ~/go/src/github.com/argoproj/argo-cd
|
||||
- name: Setup Golang
|
||||
uses: actions/setup-go@v3
|
||||
uses: actions/setup-go@d0a58c1c4d2b25278816e339b944508c875f3613 # v3.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOLANG_VERSION }}
|
||||
- name: Install required packages
|
||||
@@ -179,7 +179,7 @@ jobs:
|
||||
run: |
|
||||
echo "/usr/local/bin" >> $GITHUB_PATH
|
||||
- name: Restore go build cache
|
||||
uses: actions/cache@v1
|
||||
uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 # v3.0.11
|
||||
with:
|
||||
path: ~/.cache/go-build
|
||||
key: ${{ runner.os }}-go-build-v1-${{ github.run_id }}
|
||||
@@ -196,7 +196,7 @@ jobs:
|
||||
- name: Run all unit tests
|
||||
run: make test-race-local
|
||||
- name: Generate test results artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
uses: actions/upload-artifact@83fd05a356d7e2593de66fc9913b3002723633cb # v3.1.1
|
||||
with:
|
||||
name: race-results
|
||||
path: test-results/
|
||||
@@ -206,9 +206,9 @@ jobs:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # v3.2.0
|
||||
- name: Setup Golang
|
||||
uses: actions/setup-go@v3
|
||||
uses: actions/setup-go@d0a58c1c4d2b25278816e339b944508c875f3613 # v3.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOLANG_VERSION }}
|
||||
- name: Create symlink in GOPATH
|
||||
@@ -250,14 +250,14 @@ jobs:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # v3.2.0
|
||||
- name: Setup NodeJS
|
||||
uses: actions/setup-node@v1
|
||||
uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 # v3.5.1
|
||||
with:
|
||||
node-version: '12.18.4'
|
||||
- name: Restore node dependency cache
|
||||
id: cache-dependencies
|
||||
uses: actions/cache@v1
|
||||
uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 # v3.0.11
|
||||
with:
|
||||
path: ui/node_modules
|
||||
key: ${{ runner.os }}-node-dep-v2-${{ hashFiles('**/yarn.lock') }}
|
||||
@@ -287,12 +287,12 @@ jobs:
|
||||
sonar_secret: ${{ secrets.SONAR_TOKEN }}
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # v3.2.0
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Restore node dependency cache
|
||||
id: cache-dependencies
|
||||
uses: actions/cache@v1
|
||||
uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 # v3.0.11
|
||||
with:
|
||||
path: ui/node_modules
|
||||
key: ${{ runner.os }}-node-dep-v2-${{ hashFiles('**/yarn.lock') }}
|
||||
@@ -303,16 +303,16 @@ jobs:
|
||||
run: |
|
||||
mkdir -p test-results
|
||||
- name: Get code coverage artifiact
|
||||
uses: actions/download-artifact@v2
|
||||
uses: actions/download-artifact@9782bd6a9848b53b110e712e20e42d89988822b7 # v3.0.1
|
||||
with:
|
||||
name: code-coverage
|
||||
- name: Get test result artifact
|
||||
uses: actions/download-artifact@v2
|
||||
uses: actions/download-artifact@9782bd6a9848b53b110e712e20e42d89988822b7 # v3.0.1
|
||||
with:
|
||||
name: test-results
|
||||
path: test-results
|
||||
- name: Upload code coverage information to codecov.io
|
||||
uses: codecov/codecov-action@v1
|
||||
uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # v3.1.1
|
||||
with:
|
||||
file: coverage.out
|
||||
- name: Perform static code analysis using SonarCloud
|
||||
@@ -366,14 +366,22 @@ jobs:
|
||||
GITLAB_TOKEN: ${{ secrets.E2E_TEST_GITLAB_TOKEN }}
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # v3.2.0
|
||||
- name: Setup Golang
|
||||
uses: actions/setup-go@v3
|
||||
uses: actions/setup-go@d0a58c1c4d2b25278816e339b944508c875f3613 # v3.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOLANG_VERSION }}
|
||||
- name: GH actions workaround - Kill XSP4 process
|
||||
run: |
|
||||
sudo pkill mono || true
|
||||
# ubuntu-22.04 comes with kubectl, but the version is not pinned. The version as of 2022-12-05 is 1.26.0 which
|
||||
# breaks the `TestNamespacedResourceDiffing` e2e test. So we'll pin to 1.25 and then fix the underlying issue.
|
||||
- name: Install kubectl
|
||||
run: |
|
||||
rm /usr/local/bin/kubectl
|
||||
curl -LO https://dl.k8s.io/release/v1.25.4/bin/linux/amd64/kubectl
|
||||
mv kubectl /usr/local/bin/kubectl
|
||||
chmod +x /usr/local/bin/kubectl
|
||||
- name: Install K3S
|
||||
env:
|
||||
INSTALL_K3S_VERSION: ${{ matrix.k3s-version }}+k3s1
|
||||
@@ -386,7 +394,7 @@ jobs:
|
||||
sudo chown runner $HOME/.kube/config
|
||||
kubectl version
|
||||
- name: Restore go build cache
|
||||
uses: actions/cache@v1
|
||||
uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 # v3.0.11
|
||||
with:
|
||||
path: ~/.cache/go-build
|
||||
key: ${{ runner.os }}-go-build-v1-${{ github.run_id }}
|
||||
@@ -412,7 +420,7 @@ jobs:
|
||||
git config --global user.email "john.doe@example.com"
|
||||
- name: Pull Docker image required for tests
|
||||
run: |
|
||||
docker pull ghcr.io/dexidp/dex:v2.35.3-distroless
|
||||
docker pull ghcr.io/dexidp/dex:v2.35.3
|
||||
docker pull argoproj/argo-cd-ci-builder:v1.0.0
|
||||
docker pull redis:7.0.5-alpine
|
||||
- name: Create target directory for binaries in the build-process
|
||||
@@ -442,7 +450,7 @@ jobs:
|
||||
set -x
|
||||
make test-e2e-local
|
||||
- name: Upload e2e-server logs
|
||||
uses: actions/upload-artifact@v2
|
||||
uses: actions/upload-artifact@83fd05a356d7e2593de66fc9913b3002723633cb # v3.1.1
|
||||
with:
|
||||
name: e2e-server-k8s${{ matrix.k3s-version }}.log
|
||||
path: /tmp/e2e-server.log
|
||||
|
||||
8
.github/workflows/codeql.yml
vendored
8
.github/workflows/codeql.yml
vendored
@@ -29,11 +29,11 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # v3.2.0
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v2
|
||||
uses: github/codeql-action/init@8aff97f12c99086bdb92ff62ae06dbbcdf07941b # v2.1.33
|
||||
# Override language selection by uncommenting this and choosing your languages
|
||||
# with:
|
||||
# languages: go, javascript, csharp, python, cpp, java
|
||||
@@ -41,7 +41,7 @@ jobs:
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v2
|
||||
uses: github/codeql-action/autobuild@8aff97f12c99086bdb92ff62ae06dbbcdf07941b # v2.1.33
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
@@ -55,4 +55,4 @@ jobs:
|
||||
# make release
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v2
|
||||
uses: github/codeql-action/analyze@8aff97f12c99086bdb92ff62ae06dbbcdf07941b # v2.1.33
|
||||
|
||||
16
.github/workflows/image.yaml
vendored
16
.github/workflows/image.yaml
vendored
@@ -28,22 +28,22 @@ jobs:
|
||||
env:
|
||||
GOPATH: /home/runner/work/argo-cd/argo-cd
|
||||
steps:
|
||||
- uses: actions/setup-go@v3
|
||||
- uses: actions/setup-go@d0a58c1c4d2b25278816e339b944508c875f3613 # v3.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOLANG_VERSION }}
|
||||
- uses: actions/checkout@master
|
||||
- uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # v3.2.0
|
||||
with:
|
||||
path: src/github.com/argoproj/argo-cd
|
||||
|
||||
# get image tag
|
||||
- run: echo ::set-output name=tag::$(cat ./VERSION)-${GITHUB_SHA::8}
|
||||
- run: echo "tag=$(cat ./VERSION)-${GITHUB_SHA::8}" >> $GITHUB_OUTPUT
|
||||
working-directory: ./src/github.com/argoproj/argo-cd
|
||||
id: image
|
||||
|
||||
# login
|
||||
- run: |
|
||||
docker login ghcr.io --username $USERNAME --password $PASSWORD
|
||||
docker login quay.io --username "${DOCKER_USERNAME}" --password "${DOCKER_TOKEN}"
|
||||
docker login ghcr.io --username $USERNAME --password-stdin <<< "$PASSWORD"
|
||||
docker login quay.io --username "$DOCKER_USERNAME" --password-stdin <<< "$DOCKER_TOKEN"
|
||||
if: github.event_name == 'push'
|
||||
env:
|
||||
USERNAME: ${{ secrets.USERNAME }}
|
||||
@@ -52,8 +52,8 @@ jobs:
|
||||
DOCKER_TOKEN: ${{ secrets.RELEASE_QUAY_TOKEN }}
|
||||
|
||||
# build
|
||||
- uses: docker/setup-qemu-action@v2
|
||||
- uses: docker/setup-buildx-action@v2
|
||||
- uses: docker/setup-qemu-action@e81a89b1732b9c48d79cd809d8d81d79c4647a18 # v2.1.0
|
||||
- uses: docker/setup-buildx-action@8c0edbc76e98fa90f69d9a2c020dcb50019dc325 # v2.2.1
|
||||
- run: |
|
||||
IMAGE_PLATFORMS=linux/amd64
|
||||
if [[ "${{ github.event_name }}" == "push" || "${{ contains(github.event.pull_request.labels.*.name, 'test-arm-image') }}" == "true" ]]
|
||||
@@ -68,7 +68,7 @@ jobs:
|
||||
|
||||
# sign container images
|
||||
- name: Install cosign
|
||||
uses: sigstore/cosign-installer@main
|
||||
uses: sigstore/cosign-installer@9becc617647dfa20ae7b1151972e9b3a2c338a2b # v2.8.1
|
||||
with:
|
||||
cosign-release: 'v1.13.0'
|
||||
|
||||
|
||||
23
.github/workflows/release.yaml
vendored
23
.github/workflows/release.yaml
vendored
@@ -43,7 +43,7 @@ jobs:
|
||||
GIT_EMAIL: argoproj@gmail.com
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # v3.2.0
|
||||
with:
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -147,7 +147,7 @@ jobs:
|
||||
echo "RELEASE_NOTES=${RELEASE_NOTES}" >> $GITHUB_ENV
|
||||
|
||||
- name: Setup Golang
|
||||
uses: actions/setup-go@v3
|
||||
uses: actions/setup-go@d0a58c1c4d2b25278816e339b944508c875f3613 # v3.4.0
|
||||
with:
|
||||
go-version: ${{ env.GOLANG_VERSION }}
|
||||
|
||||
@@ -195,13 +195,13 @@ jobs:
|
||||
QUAY_TOKEN: ${{ secrets.RELEASE_QUAY_TOKEN }}
|
||||
run: |
|
||||
set -ue
|
||||
docker login quay.io --username "${QUAY_USERNAME}" --password "${QUAY_TOKEN}"
|
||||
docker login quay.io --username "${QUAY_USERNAME}" --password-stdin <<< "${QUAY_TOKEN}"
|
||||
# Remove the following when Docker Hub is gone
|
||||
docker login --username "${DOCKER_USERNAME}" --password "${DOCKER_TOKEN}"
|
||||
docker login --username "${DOCKER_USERNAME}" --password-stdin <<< "${DOCKER_TOKEN}"
|
||||
if: ${{ env.DRY_RUN != 'true' }}
|
||||
|
||||
- uses: docker/setup-qemu-action@v2
|
||||
- uses: docker/setup-buildx-action@v2
|
||||
- uses: docker/setup-qemu-action@e81a89b1732b9c48d79cd809d8d81d79c4647a18 # v2.1.0
|
||||
- uses: docker/setup-buildx-action@8c0edbc76e98fa90f69d9a2c020dcb50019dc325 # v2.2.1
|
||||
- name: Build and push Docker image for release
|
||||
run: |
|
||||
set -ue
|
||||
@@ -215,7 +215,7 @@ jobs:
|
||||
if: ${{ env.DRY_RUN != 'true' }}
|
||||
|
||||
- name: Install cosign
|
||||
uses: sigstore/cosign-installer@main
|
||||
uses: sigstore/cosign-installer@9becc617647dfa20ae7b1151972e9b3a2c338a2b # v2.8.1
|
||||
with:
|
||||
cosign-release: 'v1.13.0'
|
||||
|
||||
@@ -232,7 +232,7 @@ jobs:
|
||||
|
||||
- name: Read release notes file
|
||||
id: release-notes
|
||||
uses: juliangruber/read-file-action@v1
|
||||
uses: juliangruber/read-file-action@02bbba9876a8f870efd4ad64e3b9088d3fb94d4b # v1.1.6
|
||||
with:
|
||||
path: ${{ env.RELEASE_NOTES }}
|
||||
|
||||
@@ -243,7 +243,7 @@ jobs:
|
||||
git push origin ${RELEASE_TAG}
|
||||
|
||||
- name: Dry run GitHub release
|
||||
uses: actions/create-release@v1
|
||||
uses: actions/create-release@0cb9c9b65d5d1901c1f53e5e66eaf4afd303e70e # v1.1.4
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
id: create_release
|
||||
@@ -295,7 +295,7 @@ jobs:
|
||||
if: ${{ env.DRY_RUN != 'true' }}
|
||||
|
||||
- name: Create GitHub release
|
||||
uses: softprops/action-gh-release@v1
|
||||
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v0.1.15
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
@@ -303,7 +303,6 @@ jobs:
|
||||
tag_name: ${{ env.RELEASE_TAG }}
|
||||
draft: ${{ env.DRAFT_RELEASE }}
|
||||
prerelease: ${{ env.PRE_RELEASE }}
|
||||
generate_release_notes: true
|
||||
body: ${{ steps.release-notes.outputs.content }} # Pre-pended to the generated notes
|
||||
files: |
|
||||
dist/argocd-*
|
||||
@@ -314,7 +313,7 @@ jobs:
|
||||
- name: Update homebrew formula
|
||||
env:
|
||||
HOMEBREW_TOKEN: ${{ secrets.RELEASE_HOMEBREW_TOKEN }}
|
||||
uses: dawidd6/action-homebrew-bump-formula@v3
|
||||
uses: dawidd6/action-homebrew-bump-formula@02e79d9da43d79efa846d73695b6052cbbdbf48a # v3.8.3
|
||||
with:
|
||||
token: ${{env.HOMEBREW_TOKEN}}
|
||||
formula: argocd
|
||||
|
||||
17
.github/workflows/update-snyk.yaml
vendored
17
.github/workflows/update-snyk.yaml
vendored
@@ -1,6 +1,5 @@
|
||||
name: Snyk report update
|
||||
on:
|
||||
workflow_dispatch: {}
|
||||
schedule:
|
||||
- cron: '0 0 * * 0' # midnight every Sunday
|
||||
|
||||
@@ -10,27 +9,23 @@ permissions:
|
||||
jobs:
|
||||
snyk-report:
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
contents: write # To push snyk reports
|
||||
if: github.repository == 'argoproj/argo-cd'
|
||||
name: Update Snyk report in the docs directory
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # v3.2.0
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Build reports
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
|
||||
run: |
|
||||
make snyk-report
|
||||
pr_branch="snyk-update-$(echo $RANDOM | md5sum | head -c 20)"
|
||||
git checkout -b "$pr_branch"
|
||||
git config --global user.email 'ci@argoproj.com'
|
||||
git config --global user.name 'CI'
|
||||
git add docs/snyk
|
||||
git commit -m "[Bot] Update Snyk reports" --signoff
|
||||
git push --set-upstream origin "$pr_branch"
|
||||
gh pr create -B master -H "$pr_branch" --title '[Bot] docs: Update Snyk report' --body ''
|
||||
git add docs/snyk/index.md
|
||||
git add docs/snyk/*/*.html
|
||||
git commit -m "[Bot] Update Snyk reports"
|
||||
git push
|
||||
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -17,7 +17,6 @@ test-results
|
||||
node_modules/
|
||||
.kube/
|
||||
./test/cmp/*.sock
|
||||
.envrc.remote
|
||||
|
||||
# ignore built binaries
|
||||
cmd/argocd/argocd
|
||||
|
||||
4
Makefile
4
Makefile
@@ -512,7 +512,7 @@ build-docs-local:
|
||||
|
||||
.PHONY: build-docs
|
||||
build-docs:
|
||||
docker run ${MKDOCS_RUN_ARGS} --rm -it -p 8000:8000 -v ${CURRENT_DIR}:/docs ${MKDOCS_DOCKER_IMAGE} build
|
||||
docker run ${MKDOCS_RUN_ARGS} --rm -it -v ${CURRENT_DIR}:/docs --entrypoint "" ${MKDOCS_DOCKER_IMAGE} sh -c 'pip install -r docs/requirements.txt; mkdocs build'
|
||||
|
||||
.PHONY: serve-docs-local
|
||||
serve-docs-local:
|
||||
@@ -520,7 +520,7 @@ serve-docs-local:
|
||||
|
||||
.PHONY: serve-docs
|
||||
serve-docs:
|
||||
docker run ${MKDOCS_RUN_ARGS} --rm -it -p 8000:8000 -v ${CURRENT_DIR}:/docs ${MKDOCS_DOCKER_IMAGE} serve -a 0.0.0.0:8000
|
||||
docker run ${MKDOCS_RUN_ARGS} --rm -it -p 8000:8000 -v ${CURRENT_DIR}/site:/site -w /site --entrypoint "" ${MKDOCS_DOCKER_IMAGE} python3 -m http.server --bind 0.0.0.0 8000
|
||||
|
||||
|
||||
# Verify that kubectl can connect to your K8s cluster from Docker
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
[](https://github.com/argoproj/argo-cd/actions?query=workflow%3A%22Integration+tests%22) [](https://argoproj.github.io/community/join-slack) [](https://codecov.io/gh/argoproj/argo-cd) [](https://github.com/argoproj/argo-cd/releases/latest) [](https://bestpractices.coreinfrastructure.org/projects/4486) [](https://twitter.com/argoproj)
|
||||
[](https://artifacthub.io/packages/helm/argo/argo-cd)
|
||||
|
||||
# Argo CD - Declarative Continuous Delivery for Kubernetes
|
||||
|
||||
|
||||
3
USERS.md
3
USERS.md
@@ -53,7 +53,6 @@ Currently, the following organizations are **officially** using Argo CD:
|
||||
1. [D2iQ](https://www.d2iq.com)
|
||||
1. [Datarisk](https://www.datarisk.io/)
|
||||
1. [Deloitte](https://www.deloitte.com/)
|
||||
1. [Deutsche Telekom AG](https://telekom.com)
|
||||
1. [Devopsi - Poland Software/DevOps Consulting](https://devopsi.pl/)
|
||||
1. [Devtron Labs](https://github.com/devtron-labs/devtron)
|
||||
1. [EDF Renewables](https://www.edf-re.com/)
|
||||
@@ -75,7 +74,6 @@ Currently, the following organizations are **officially** using Argo CD:
|
||||
1. [G DATA CyberDefense AG](https://www.gdata-software.com/)
|
||||
1. [Garner](https://www.garnercorp.com)
|
||||
1. [Generali Deutschland AG](https://www.generali.de/)
|
||||
2. [Gepardec](https://gepardec.com/)
|
||||
1. [Gitpod](https://www.gitpod.io)
|
||||
1. [Gllue](https://gllue.com)
|
||||
1. [gloat](https://gloat.com/)
|
||||
@@ -162,6 +160,7 @@ Currently, the following organizations are **officially** using Argo CD:
|
||||
1. [Pipefy](https://www.pipefy.com/)
|
||||
1. [Pismo](https://pismo.io/)
|
||||
1. [Polarpoint.io](https://polarpoint.io)
|
||||
1. [PostFinance](https://github.com/postfinance)
|
||||
1. [Preferred Networks](https://preferred.jp/en/)
|
||||
1. [Productboard](https://www.productboard.com/)
|
||||
1. [Prudential](https://prudential.com.sg)
|
||||
|
||||
@@ -484,7 +484,7 @@ func (r *ApplicationSetReconciler) SetupWithManager(mgr ctrl.Manager) error {
|
||||
// ...and if so, return it
|
||||
return []string{owner.Name}
|
||||
}); err != nil {
|
||||
return fmt.Errorf("error setting up with manager: %w", err)
|
||||
return err
|
||||
}
|
||||
|
||||
return ctrl.NewControllerManagedBy(mgr).
|
||||
@@ -567,7 +567,7 @@ func (r *ApplicationSetReconciler) createInCluster(ctx context.Context, applicat
|
||||
var createApps []argov1alpha1.Application
|
||||
current, err := r.getCurrentApplications(ctx, applicationSet)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error getting current applications: %w", err)
|
||||
return err
|
||||
}
|
||||
|
||||
m := make(map[string]bool) // Will holds the app names that are current in the cluster
|
||||
@@ -608,13 +608,13 @@ func (r *ApplicationSetReconciler) deleteInCluster(ctx context.Context, applicat
|
||||
// clusterList, err := argoDB.ListClusters(ctx)
|
||||
clusterList, err := utils.ListClusters(ctx, r.KubeClientset, applicationSet.Namespace)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error listing clusters: %w", err)
|
||||
return err
|
||||
}
|
||||
|
||||
// Save current applications to be able to delete the ones that are not in appList
|
||||
current, err := r.getCurrentApplications(ctx, applicationSet)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error getting current applications: %w", err)
|
||||
return err
|
||||
}
|
||||
|
||||
m := make(map[string]bool) // Will holds the app names in appList for the deletion process
|
||||
@@ -718,7 +718,7 @@ func (r *ApplicationSetReconciler) removeFinalizerOnInvalidDestination(ctx conte
|
||||
|
||||
err := r.Client.Update(ctx, app, &client.UpdateOptions{})
|
||||
if err != nil {
|
||||
return fmt.Errorf("error updating finalizers: %w", err)
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -170,7 +170,7 @@ func appendTemplatedValues(clusterValues map[string]string, params map[string]in
|
||||
result, err := replaceTemplatedString(value, params, appSet)
|
||||
|
||||
if err != nil {
|
||||
return fmt.Errorf("error replacing templated String: %w", err)
|
||||
return err
|
||||
}
|
||||
|
||||
if appSet.Spec.GoTemplate {
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package generators
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"encoding/json"
|
||||
"reflect"
|
||||
|
||||
@@ -29,7 +28,7 @@ type TransformResult struct {
|
||||
func Transform(requestedGenerator argoprojiov1alpha1.ApplicationSetGenerator, allGenerators map[string]Generator, baseTemplate argoprojiov1alpha1.ApplicationSetTemplate, appSet *argoprojiov1alpha1.ApplicationSet, genParams map[string]interface{}) ([]TransformResult, error) {
|
||||
selector, err := metav1.LabelSelectorAsSelector(requestedGenerator.Selector)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error parsing label selector: %w", err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
res := []TransformResult{}
|
||||
|
||||
@@ -122,6 +122,15 @@ func (g *SCMProviderGenerator) GenerateParams(appSetGenerator *argoprojiov1alpha
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error initializing Azure Devops service: %v", err)
|
||||
}
|
||||
} else if providerConfig.Bitbucket != nil {
|
||||
appPassword, err := g.getSecretRef(ctx, providerConfig.Bitbucket.AppPasswordRef, applicationSetInfo.Namespace)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error fetching Bitbucket cloud appPassword: %v", err)
|
||||
}
|
||||
provider, err = scm_provider.NewBitBucketCloudProvider(ctx, providerConfig.Bitbucket.Owner, providerConfig.Bitbucket.User, appPassword, providerConfig.Bitbucket.AllBranches)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error initializing Bitbucket cloud service: %v", err)
|
||||
}
|
||||
} else {
|
||||
return nil, fmt.Errorf("no SCM provider implementation configured")
|
||||
}
|
||||
|
||||
@@ -85,12 +85,12 @@ func (a *argoCDService) GetDirectories(ctx context.Context, repoURL string, revi
|
||||
|
||||
gitRepoClient, err := git.NewClient(repo.Repo, repo.GetGitCreds(a.storecreds), repo.IsInsecure(), repo.IsLFSEnabled(), repo.Proxy)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error creating a new git client: %w", err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = checkoutRepo(gitRepoClient, revision, a.submoduleEnabled)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error while checking out repo: %w", err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
filteredPaths := []string{}
|
||||
@@ -99,7 +99,7 @@ func (a *argoCDService) GetDirectories(ctx context.Context, repoURL string, revi
|
||||
|
||||
if err := filepath.Walk(repoRoot, func(path string, info os.FileInfo, fnErr error) error {
|
||||
if fnErr != nil {
|
||||
return fmt.Errorf("error walking the file tree: %w", fnErr)
|
||||
return fnErr
|
||||
}
|
||||
if !info.IsDir() { // Skip files: directories only
|
||||
return nil
|
||||
@@ -112,7 +112,7 @@ func (a *argoCDService) GetDirectories(ctx context.Context, repoURL string, revi
|
||||
|
||||
relativePath, err := filepath.Rel(repoRoot, path)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error constructing relative repo path: %w", err)
|
||||
return err
|
||||
}
|
||||
|
||||
if relativePath == "." { // Exclude '.' from results
|
||||
|
||||
@@ -35,7 +35,7 @@ func NewGiteaProvider(ctx context.Context, owner, token, url string, allBranches
|
||||
}
|
||||
client, err := gitea.NewClient(url, gitea.SetToken(token), gitea.SetHTTPClient(httpClient))
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error creating a new gitea client: %w", err)
|
||||
return nil, err
|
||||
}
|
||||
return &GiteaProvider{
|
||||
client: client,
|
||||
|
||||
@@ -88,7 +88,7 @@ func CreateOrUpdate(ctx context.Context, c client.Client, obj client.Object, f c
|
||||
// mutate wraps a MutateFn and applies validation to its result
|
||||
func mutate(f controllerutil.MutateFn, key client.ObjectKey, obj client.Object) error {
|
||||
if err := f(); err != nil {
|
||||
return fmt.Errorf("error while wrapping using MutateFn: %w", err)
|
||||
return err
|
||||
}
|
||||
if newKey := client.ObjectKeyFromObject(obj); key != newKey {
|
||||
return fmt.Errorf("MutateFn cannot mutate object name and/or object namespace")
|
||||
|
||||
@@ -133,6 +133,16 @@ func (r *Render) deeplyReplace(copy, original reflect.Value, replaceMap map[stri
|
||||
if err := r.deeplyReplace(copyValue, originalValue, replaceMap, useGoTemplate); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Keys can be templated as well as values (e.g. to template something into an annotation).
|
||||
if key.Kind() == reflect.String {
|
||||
templatedKey, err := r.Replace(key.String(), replaceMap, useGoTemplate)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
key = reflect.ValueOf(templatedKey)
|
||||
}
|
||||
|
||||
copy.SetMapIndex(key, copyValue)
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ import (
|
||||
"github.com/sirupsen/logrus"
|
||||
logtest "github.com/sirupsen/logrus/hooks/test"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
@@ -461,7 +462,49 @@ func TestRenderTemplateParamsGoTemplate(t *testing.T) {
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestRenderTemplateKeys(t *testing.T) {
|
||||
t.Run("fasttemplate", func(t *testing.T) {
|
||||
application := &argoappsv1.Application{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Annotations: map[string]string{
|
||||
"annotation-{{key}}": "annotation-{{value}}",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
params := map[string]interface{}{
|
||||
"key": "some-key",
|
||||
"value": "some-value",
|
||||
}
|
||||
|
||||
render := Render{}
|
||||
newApplication, err := render.RenderTemplateParams(application, nil, params, false)
|
||||
require.NoError(t, err)
|
||||
require.Contains(t, newApplication.ObjectMeta.Annotations, "annotation-some-key")
|
||||
assert.Equal(t, newApplication.ObjectMeta.Annotations["annotation-some-key"], "annotation-some-value")
|
||||
})
|
||||
t.Run("gotemplate", func(t *testing.T) {
|
||||
application := &argoappsv1.Application{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Annotations: map[string]string{
|
||||
"annotation-{{ .key }}": "annotation-{{ .value }}",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
params := map[string]interface{}{
|
||||
"key": "some-key",
|
||||
"value": "some-value",
|
||||
}
|
||||
|
||||
render := Render{}
|
||||
newApplication, err := render.RenderTemplateParams(application, nil, params, true)
|
||||
require.NoError(t, err)
|
||||
require.Contains(t, newApplication.ObjectMeta.Annotations, "annotation-some-key")
|
||||
assert.Equal(t, newApplication.ObjectMeta.Annotations["annotation-some-key"], "annotation-some-value")
|
||||
})
|
||||
}
|
||||
|
||||
func TestRenderTemplateParamsFinalizers(t *testing.T) {
|
||||
|
||||
@@ -4097,6 +4097,9 @@
|
||||
"appLabelKey": {
|
||||
"type": "string"
|
||||
},
|
||||
"appsInAnyNamespaceEnabled": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"configManagementPlugins": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
@@ -7482,8 +7485,8 @@
|
||||
"$ref": "#/definitions/v1Time"
|
||||
},
|
||||
"message": {
|
||||
"description": "Message contains the message associated with the revision, most likely the commit message.",
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"title": "Message contains the message associated with the revision, most likely the commit message.\nThe message is truncated to the first newline or 64 characters (which ever comes first)"
|
||||
},
|
||||
"signatureInfo": {
|
||||
"description": "SignatureInfo contains a hint on the signer if the revision was signed with GPG, and signature verification is enabled.",
|
||||
|
||||
@@ -39,7 +39,7 @@ import (
|
||||
argosettings "github.com/argoproj/argo-cd/v2/util/settings"
|
||||
)
|
||||
|
||||
// TODO: load this using Cobra.
|
||||
// TODO: load this using Cobra. https://github.com/argoproj/argo-cd/issues/10157
|
||||
func getSubmoduleEnabled() bool {
|
||||
return env.ParseBoolFromEnv(common.EnvGitSubmoduleEnabled, true)
|
||||
}
|
||||
@@ -195,16 +195,16 @@ func NewCommand() *cobra.Command {
|
||||
command.Flags().StringVar(&metricsAddr, "metrics-addr", ":8080", "The address the metric endpoint binds to.")
|
||||
command.Flags().StringVar(&probeBindAddr, "probe-addr", ":8081", "The address the probe endpoint binds to.")
|
||||
command.Flags().StringVar(&webhookAddr, "webhook-addr", ":7000", "The address the webhook endpoint binds to.")
|
||||
command.Flags().BoolVar(&enableLeaderElection, "enable-leader-election", env.ParseBoolFromEnv("ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_LEADER_ELECTION", false),
|
||||
command.Flags().BoolVar(&enableLeaderElection, "enable-leader-election", false,
|
||||
"Enable leader election for controller manager. "+
|
||||
"Enabling this will ensure there is only one active controller manager.")
|
||||
command.Flags().StringVar(&namespace, "namespace", env.StringFromEnv("ARGOCD_APPLICATIONSET_CONTROLLER_NAMESPACE", ""), "Argo CD repo namespace (default: argocd)")
|
||||
command.Flags().StringVar(&argocdRepoServer, "argocd-repo-server", env.StringFromEnv("ARGOCD_APPLICATIONSET_CONTROLLER_REPO_SERVER", common.DefaultRepoServerAddr), "Argo CD repo server address")
|
||||
command.Flags().StringVar(&policy, "policy", env.StringFromEnv("ARGOCD_APPLICATIONSET_CONTROLLER_POLICY", "sync"), "Modify how application is synced between the generator and the cluster. Default is 'sync' (create & update & delete), options: 'create-only', 'create-update' (no deletion)")
|
||||
command.Flags().BoolVar(&debugLog, "debug", env.ParseBoolFromEnv("ARGOCD_APPLICATIONSET_CONTROLLER_DEBUG", false), "Print debug logs. Takes precedence over loglevel")
|
||||
command.Flags().StringVar(&cmdutil.LogFormat, "logformat", env.StringFromEnv("ARGOCD_APPLICATIONSET_CONTROLLER_LOGFORMAT", "text"), "Set the logging format. One of: text|json")
|
||||
command.Flags().StringVar(&cmdutil.LogLevel, "loglevel", env.StringFromEnv("ARGOCD_APPLICATIONSET_CONTROLLER_LOGLEVEL", "info"), "Set the logging level. One of: debug|info|warn|error")
|
||||
command.Flags().BoolVar(&dryRun, "dry-run", env.ParseBoolFromEnv("ARGOCD_APPLICATIONSET_CONTROLLER_DRY_RUN", false), "Enable dry run mode")
|
||||
command.Flags().StringVar(&namespace, "namespace", "", "Argo CD repo namespace (default: argocd)")
|
||||
command.Flags().StringVar(&argocdRepoServer, "argocd-repo-server", "argocd-repo-server:8081", "Argo CD repo server address")
|
||||
command.Flags().StringVar(&policy, "policy", "sync", "Modify how application is synced between the generator and the cluster. Default is 'sync' (create & update & delete), options: 'create-only', 'create-update' (no deletion)")
|
||||
command.Flags().BoolVar(&debugLog, "debug", false, "Print debug logs. Takes precedence over loglevel")
|
||||
command.Flags().StringVar(&cmdutil.LogFormat, "logformat", "text", "Set the logging format. One of: text|json")
|
||||
command.Flags().StringVar(&cmdutil.LogLevel, "loglevel", "info", "Set the logging level. One of: debug|info|warn|error")
|
||||
command.Flags().BoolVar(&dryRun, "dry-run", false, "Enable dry run mode")
|
||||
return &command
|
||||
}
|
||||
|
||||
|
||||
@@ -44,7 +44,6 @@ func NewAccountCommand(clientOpts *argocdclient.ClientOptions) *cobra.Command {
|
||||
command.AddCommand(NewAccountGenerateTokenCommand(clientOpts))
|
||||
command.AddCommand(NewAccountGetCommand(clientOpts))
|
||||
command.AddCommand(NewAccountDeleteTokenCommand(clientOpts))
|
||||
command.AddCommand(NewBcryptCmd())
|
||||
return command
|
||||
}
|
||||
|
||||
|
||||
@@ -292,11 +292,11 @@ func saveToFile(err error, outputFormat string, result reconcileResults, outputP
|
||||
switch outputFormat {
|
||||
case "yaml":
|
||||
if data, err = yaml.Marshal(result); err != nil {
|
||||
return fmt.Errorf("error marshalling yaml: %w", err)
|
||||
return err
|
||||
}
|
||||
case "json":
|
||||
if data, err = json.Marshal(result); err != nil {
|
||||
return fmt.Errorf("error marshalling json: %w", err)
|
||||
return err
|
||||
}
|
||||
default:
|
||||
return fmt.Errorf("format %s is not supported", outputFormat)
|
||||
|
||||
@@ -221,11 +221,11 @@ func printStatsSummary(clusters []ClusterWithInfo) {
|
||||
func runClusterNamespacesCommand(ctx context.Context, clientConfig clientcmd.ClientConfig, action func(appClient *versioned.Clientset, argoDB db.ArgoDB, clusters map[string][]string) error) error {
|
||||
clientCfg, err := clientConfig.ClientConfig()
|
||||
if err != nil {
|
||||
return fmt.Errorf("error while creating client config: %w", err)
|
||||
return err
|
||||
}
|
||||
namespace, _, err := clientConfig.Namespace()
|
||||
if err != nil {
|
||||
return fmt.Errorf("error while getting namespace from client config: %w", err)
|
||||
return err
|
||||
}
|
||||
|
||||
kubeClient := kubernetes.NewForConfigOrDie(clientCfg)
|
||||
@@ -235,16 +235,17 @@ func runClusterNamespacesCommand(ctx context.Context, clientConfig clientcmd.Cli
|
||||
argoDB := db.NewDB(namespace, settingsMgr, kubeClient)
|
||||
clustersList, err := argoDB.ListClusters(ctx)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error listing clusters: %w", err)
|
||||
return err
|
||||
}
|
||||
appItems, err := appClient.ArgoprojV1alpha1().Applications(namespace).List(ctx, v1.ListOptions{})
|
||||
if err != nil {
|
||||
return fmt.Errorf("error listing application: %w", err)
|
||||
return err
|
||||
}
|
||||
apps := appItems.Items
|
||||
for i, app := range apps {
|
||||
if err := argo.ValidateDestination(ctx, &app.Spec.Destination, argoDB); err != nil {
|
||||
return fmt.Errorf("error validating application destination: %w", err)
|
||||
err := argo.ValidateDestination(ctx, &app.Spec.Destination, argoDB)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
apps[i] = app
|
||||
}
|
||||
@@ -348,14 +349,15 @@ func NewClusterEnableNamespacedMode() *cobra.Command {
|
||||
|
||||
cluster, err := argoDB.GetCluster(ctx, server)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error getting cluster from server: %w", err)
|
||||
return err
|
||||
}
|
||||
cluster.Namespaces = namespaces
|
||||
cluster.ClusterResources = clusterResources
|
||||
fmt.Printf("Setting cluster %s namespaces to %v...", server, namespaces)
|
||||
if !dryRun {
|
||||
if _, err = argoDB.UpdateCluster(ctx, cluster); err != nil {
|
||||
return fmt.Errorf("error updating cluster: %w", err)
|
||||
_, err = argoDB.UpdateCluster(ctx, cluster)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
fmt.Println("done")
|
||||
} else {
|
||||
@@ -403,7 +405,7 @@ func NewClusterDisableNamespacedMode() *cobra.Command {
|
||||
|
||||
cluster, err := argoDB.GetCluster(ctx, server)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error getting cluster from server: %w", err)
|
||||
return err
|
||||
}
|
||||
|
||||
if len(cluster.Namespaces) == 0 {
|
||||
@@ -413,8 +415,9 @@ func NewClusterDisableNamespacedMode() *cobra.Command {
|
||||
cluster.Namespaces = nil
|
||||
fmt.Printf("Disabling namespaced mode for cluster %s...", server)
|
||||
if !dryRun {
|
||||
if _, err = argoDB.UpdateCluster(ctx, cluster); err != nil {
|
||||
return fmt.Errorf("error updating cluster: %w", err)
|
||||
_, err = argoDB.UpdateCluster(ctx, cluster)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
fmt.Println("done")
|
||||
} else {
|
||||
|
||||
@@ -43,7 +43,7 @@ func PrintResources(output string, out io.Writer, resources ...interface{}) erro
|
||||
}
|
||||
filteredResource, err := omitFields(resource)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error omitting filtered fields from the resource: %w", err)
|
||||
return err
|
||||
}
|
||||
resources[i] = filteredResource
|
||||
}
|
||||
@@ -56,14 +56,14 @@ func PrintResources(output string, out io.Writer, resources ...interface{}) erro
|
||||
case "json":
|
||||
jsonBytes, err := json.MarshalIndent(obj, "", " ")
|
||||
if err != nil {
|
||||
return fmt.Errorf("error marshaling json: %w", err)
|
||||
return err
|
||||
}
|
||||
|
||||
_, _ = fmt.Fprintln(out, string(jsonBytes))
|
||||
case "yaml":
|
||||
yamlBytes, err := yaml.Marshal(obj)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error marshaling yaml: %w", err)
|
||||
return err
|
||||
}
|
||||
// marshaled YAML already ends with the new line character
|
||||
_, _ = fmt.Fprint(out, string(yamlBytes))
|
||||
|
||||
@@ -33,7 +33,7 @@ func NewNotificationsCommand() *cobra.Command {
|
||||
var argocdService service.Service
|
||||
toolsCommand := cmd.NewToolsCommand(
|
||||
"notifications",
|
||||
"notifications",
|
||||
"argocd admin notifications",
|
||||
applications,
|
||||
settings.GetFactorySettings(argocdService, "argocd-notifications-secret", "argocd-notifications-cm"), func(clientConfig clientcmd.ClientConfig) {
|
||||
k8sCfg, err := clientConfig.ClientConfig()
|
||||
|
||||
@@ -106,13 +106,13 @@ func saveProject(ctx context.Context, updated v1alpha1.AppProject, orig v1alpha1
|
||||
errors.CheckError(err)
|
||||
live, err := kube.ToUnstructured(&orig)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error converting project to unstructured: %w", err)
|
||||
return err
|
||||
}
|
||||
_ = cli.PrintDiff(updated.Name, target, live)
|
||||
if !dryRun {
|
||||
_, err = projectsIf.Update(ctx, &updated, v1.UpdateOptions{})
|
||||
if err != nil {
|
||||
return fmt.Errorf("error while updating project: %w", err)
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
@@ -188,7 +188,7 @@ func NewUpdatePolicyRuleCommand() *cobra.Command {
|
||||
func updateProjects(ctx context.Context, projIf appclient.AppProjectInterface, projectGlob string, rolePattern string, action string, modification func(string, string) string, dryRun bool) error {
|
||||
projects, err := projIf.List(ctx, v1.ListOptions{})
|
||||
if err != nil {
|
||||
return fmt.Errorf("error listing the projects: %w", err)
|
||||
return err
|
||||
}
|
||||
for _, proj := range projects.Items {
|
||||
if !globMatch(projectGlob, proj.Name) {
|
||||
@@ -225,7 +225,7 @@ func updateProjects(ctx context.Context, projIf appclient.AppProjectInterface, p
|
||||
if updated {
|
||||
err = saveProject(ctx, proj, *origProj, projIf, dryRun)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error saving the project: %w", err)
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2427,12 +2427,12 @@ func NewApplicationEditCommand(clientOpts *argocdclient.ClientOptions) *cobra.Co
|
||||
cli.InteractiveEdit(fmt.Sprintf("%s-*-edit.yaml", appName), appData, func(input []byte) error {
|
||||
input, err = yaml.YAMLToJSON(input)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error converting YAML to JSON: %w", err)
|
||||
return err
|
||||
}
|
||||
updatedSpec := argoappv1.ApplicationSpec{}
|
||||
err = json.Unmarshal(input, &updatedSpec)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error unmarshaling input into application spec: %w", err)
|
||||
return err
|
||||
}
|
||||
|
||||
var appOpts cmdutil.AppOptions
|
||||
@@ -2444,9 +2444,9 @@ func NewApplicationEditCommand(clientOpts *argocdclient.ClientOptions) *cobra.Co
|
||||
AppNamespace: &appNs,
|
||||
})
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to update application spec: %w", err)
|
||||
return fmt.Errorf("Failed to update application spec:\n%v", err)
|
||||
}
|
||||
return nil
|
||||
return err
|
||||
})
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
package commands
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
)
|
||||
|
||||
// bcryptCmd represents the bcrypt command
|
||||
func NewBcryptCmd() *cobra.Command {
|
||||
var (
|
||||
password string
|
||||
)
|
||||
var bcryptCmd = &cobra.Command{
|
||||
Use: "bcrypt",
|
||||
Short: "Generate bcrypt hash for the admin password",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
bytePassword := []byte(password)
|
||||
// Hashing the password
|
||||
hash, err := bcrypt.GenerateFromPassword(bytePassword, bcrypt.DefaultCost)
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to genarate bcrypt hash: %v", err)
|
||||
}
|
||||
fmt.Fprint(cmd.OutOrStdout(), string(hash))
|
||||
},
|
||||
}
|
||||
|
||||
bcryptCmd.Flags().StringVar(&password, "password", "", "Password for which bcrypt hash is generated")
|
||||
err := bcryptCmd.MarkFlagRequired("password")
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
return bcryptCmd
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
package commands
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
)
|
||||
|
||||
func TestGeneratePassword(t *testing.T) {
|
||||
bcryptCmd := NewBcryptCmd()
|
||||
bcryptCmd.SetArgs([]string{"--password", "abc"})
|
||||
output := new(bytes.Buffer)
|
||||
bcryptCmd.SetOutput(output)
|
||||
err := bcryptCmd.Execute()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
err = bcrypt.CompareHashAndPassword(output.Bytes(), []byte("abc"))
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
@@ -22,13 +22,13 @@ func PrintResource(resource interface{}, output string) error {
|
||||
case "json":
|
||||
jsonBytes, err := json.MarshalIndent(resource, "", " ")
|
||||
if err != nil {
|
||||
return fmt.Errorf("unable to marshal resource to json: %w", err)
|
||||
return err
|
||||
}
|
||||
fmt.Println(string(jsonBytes))
|
||||
case "yaml":
|
||||
yamlBytes, err := yaml.Marshal(resource)
|
||||
if err != nil {
|
||||
return fmt.Errorf("unable to marshal resource to yaml: %w", err)
|
||||
return err
|
||||
}
|
||||
fmt.Print(string(yamlBytes))
|
||||
default:
|
||||
@@ -56,13 +56,13 @@ func PrintResourceList(resources interface{}, output string, single bool) error
|
||||
case "json":
|
||||
jsonBytes, err := json.MarshalIndent(resources, "", " ")
|
||||
if err != nil {
|
||||
return fmt.Errorf("unable to marshal resources to json: %w", err)
|
||||
return err
|
||||
}
|
||||
fmt.Println(string(jsonBytes))
|
||||
case "yaml":
|
||||
yamlBytes, err := yaml.Marshal(resources)
|
||||
if err != nil {
|
||||
return fmt.Errorf("unable to marshal resources to yaml: %w", err)
|
||||
return err
|
||||
}
|
||||
fmt.Print(string(yamlBytes))
|
||||
default:
|
||||
|
||||
@@ -863,23 +863,23 @@ func NewProjectEditCommand(clientOpts *argocdclient.ClientOptions) *cobra.Comman
|
||||
cli.InteractiveEdit(fmt.Sprintf("%s-*-edit.yaml", projName), projData, func(input []byte) error {
|
||||
input, err = yaml.YAMLToJSON(input)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error converting YAML to JSON: %w", err)
|
||||
return err
|
||||
}
|
||||
updatedSpec := v1alpha1.AppProjectSpec{}
|
||||
err = json.Unmarshal(input, &updatedSpec)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error unmarshaling input into application spec: %w", err)
|
||||
return err
|
||||
}
|
||||
proj, err := projIf.Get(ctx, &projectpkg.ProjectQuery{Name: projName})
|
||||
if err != nil {
|
||||
return fmt.Errorf("could not get project by project name: %w", err)
|
||||
return err
|
||||
}
|
||||
proj.Spec = updatedSpec
|
||||
_, err = projIf.Update(ctx, &projectpkg.ProjectUpdateRequest{Project: proj})
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to update project:\n%w", err)
|
||||
return fmt.Errorf("Failed to update project:\n%v", err)
|
||||
}
|
||||
return nil
|
||||
return err
|
||||
})
|
||||
},
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ func NewCommand() *cobra.Command {
|
||||
}
|
||||
|
||||
command.AddCommand(NewCompletionCommand())
|
||||
command.AddCommand(initialize.InitCommand(NewVersionCmd(&clientOpts, nil)))
|
||||
command.AddCommand(initialize.InitCommand(NewVersionCmd(&clientOpts)))
|
||||
command.AddCommand(initialize.InitCommand(NewClusterCommand(&clientOpts, pathOpts)))
|
||||
command.AddCommand(initialize.InitCommand(NewApplicationCommand(&clientOpts)))
|
||||
command.AddCommand(initialize.InitCommand(NewAppSetCommand(&clientOpts)))
|
||||
|
||||
@@ -17,7 +17,7 @@ import (
|
||||
)
|
||||
|
||||
// NewVersionCmd returns a new `version` command to be used as a sub-command to root
|
||||
func NewVersionCmd(clientOpts *argocdclient.ClientOptions, serverVersion *version.VersionMessage) *cobra.Command {
|
||||
func NewVersionCmd(clientOpts *argocdclient.ClientOptions) *cobra.Command {
|
||||
var (
|
||||
short bool
|
||||
client bool
|
||||
@@ -54,12 +54,7 @@ func NewVersionCmd(clientOpts *argocdclient.ClientOptions, serverVersion *versio
|
||||
}
|
||||
|
||||
if !client {
|
||||
var sv *version.VersionMessage
|
||||
if serverVersion == nil {
|
||||
sv = getServerVersion(ctx, clientOpts, cmd)
|
||||
} else {
|
||||
sv = serverVersion
|
||||
}
|
||||
sv := getServerVersion(ctx, clientOpts, cmd)
|
||||
|
||||
if short {
|
||||
v["server"] = map[string]string{"argocd-server": sv.Version}
|
||||
@@ -73,13 +68,8 @@ func NewVersionCmd(clientOpts *argocdclient.ClientOptions, serverVersion *versio
|
||||
case "wide", "short", "":
|
||||
fmt.Fprint(cmd.OutOrStdout(), printClientVersion(&cv, short || (output == "short")))
|
||||
if !client {
|
||||
var sv *version.VersionMessage
|
||||
if serverVersion == nil {
|
||||
sv = getServerVersion(ctx, clientOpts, cmd)
|
||||
} else {
|
||||
sv = serverVersion
|
||||
}
|
||||
fmt.Fprint(cmd.OutOrStdout(), printServerVersion(sv, short || (output == "short")))
|
||||
sv := getServerVersion(ctx, clientOpts, cmd)
|
||||
printServerVersion(sv, short || (output == "short"))
|
||||
}
|
||||
default:
|
||||
log.Fatalf("unknown output format: %s", output)
|
||||
@@ -119,45 +109,44 @@ func printClientVersion(version *common.Version, short bool) string {
|
||||
return output
|
||||
}
|
||||
|
||||
func printServerVersion(version *version.VersionMessage, short bool) string {
|
||||
output := fmt.Sprintf("%s: %s\n", "argocd-server", version.Version)
|
||||
func printServerVersion(version *version.VersionMessage, short bool) {
|
||||
fmt.Printf("%s: %s\n", "argocd-server", version.Version)
|
||||
|
||||
if short {
|
||||
return output
|
||||
return
|
||||
}
|
||||
|
||||
if version.BuildDate != "" {
|
||||
output += fmt.Sprintf(" BuildDate: %s\n", version.BuildDate)
|
||||
fmt.Printf(" BuildDate: %s\n", version.BuildDate)
|
||||
}
|
||||
if version.GitCommit != "" {
|
||||
output += fmt.Sprintf(" GitCommit: %s\n", version.GitCommit)
|
||||
fmt.Printf(" GitCommit: %s\n", version.GitCommit)
|
||||
}
|
||||
if version.GitTreeState != "" {
|
||||
output += fmt.Sprintf(" GitTreeState: %s\n", version.GitTreeState)
|
||||
fmt.Printf(" GitTreeState: %s\n", version.GitTreeState)
|
||||
}
|
||||
if version.GitTag != "" {
|
||||
output += fmt.Sprintf(" GitTag: %s\n", version.GitTag)
|
||||
fmt.Printf(" GitTag: %s\n", version.GitTag)
|
||||
}
|
||||
if version.GoVersion != "" {
|
||||
output += fmt.Sprintf(" GoVersion: %s\n", version.GoVersion)
|
||||
fmt.Printf(" GoVersion: %s\n", version.GoVersion)
|
||||
}
|
||||
if version.Compiler != "" {
|
||||
output += fmt.Sprintf(" Compiler: %s\n", version.Compiler)
|
||||
fmt.Printf(" Compiler: %s\n", version.Compiler)
|
||||
}
|
||||
if version.Platform != "" {
|
||||
output += fmt.Sprintf(" Platform: %s\n", version.Platform)
|
||||
fmt.Printf(" Platform: %s\n", version.Platform)
|
||||
}
|
||||
if version.KustomizeVersion != "" {
|
||||
output += fmt.Sprintf(" Kustomize Version: %s\n", version.KustomizeVersion)
|
||||
fmt.Printf(" Kustomize Version: %s\n", version.KustomizeVersion)
|
||||
}
|
||||
if version.HelmVersion != "" {
|
||||
output += fmt.Sprintf(" Helm Version: %s\n", version.HelmVersion)
|
||||
fmt.Printf(" Helm Version: %s\n", version.HelmVersion)
|
||||
}
|
||||
if version.KubectlVersion != "" {
|
||||
output += fmt.Sprintf(" Kubectl Version: %s\n", version.KubectlVersion)
|
||||
fmt.Printf(" Kubectl Version: %s\n", version.KubectlVersion)
|
||||
}
|
||||
if version.JsonnetVersion != "" {
|
||||
output += fmt.Sprintf(" Jsonnet Version: %s\n", version.JsonnetVersion)
|
||||
fmt.Printf(" Jsonnet Version: %s\n", version.JsonnetVersion)
|
||||
}
|
||||
return output
|
||||
}
|
||||
|
||||
@@ -5,13 +5,12 @@ import (
|
||||
"testing"
|
||||
|
||||
argocdclient "github.com/argoproj/argo-cd/v2/pkg/apiclient"
|
||||
"github.com/argoproj/argo-cd/v2/pkg/apiclient/version"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestShortVersionClient(t *testing.T) {
|
||||
func TestShortVersion(t *testing.T) {
|
||||
buf := new(bytes.Buffer)
|
||||
cmd := NewVersionCmd(&argocdclient.ClientOptions{}, nil)
|
||||
cmd := NewVersionCmd(&argocdclient.ClientOptions{})
|
||||
cmd.SetOutput(buf)
|
||||
cmd.SetArgs([]string{"version", "--short", "--client"})
|
||||
err := cmd.Execute()
|
||||
@@ -21,17 +20,3 @@ func TestShortVersionClient(t *testing.T) {
|
||||
output := buf.String()
|
||||
assert.Equal(t, output, "argocd: v99.99.99+unknown\n")
|
||||
}
|
||||
|
||||
func TestShortVersion(t *testing.T) {
|
||||
serverVersion := &version.VersionMessage{Version: "v99.99.99+unknown"}
|
||||
buf := new(bytes.Buffer)
|
||||
cmd := NewVersionCmd(&argocdclient.ClientOptions{}, serverVersion)
|
||||
cmd.SetOutput(buf)
|
||||
cmd.SetArgs([]string{"argocd", "version", "--short"})
|
||||
err := cmd.Execute()
|
||||
if err != nil {
|
||||
t.Fatal("Failed to execute short version command")
|
||||
}
|
||||
output := buf.String()
|
||||
assert.Equal(t, output, "argocd: v99.99.99+unknown\nargocd-server: v99.99.99+unknown\n")
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ func readAppsetFromURI(fileURL string, appset *[]*argoprojiov1alpha1.Application
|
||||
|
||||
yml, err := readFilePayload()
|
||||
if err != nil {
|
||||
return fmt.Errorf("error reading file payload: %w", err)
|
||||
return err
|
||||
}
|
||||
|
||||
return readAppset(yml, appset)
|
||||
@@ -49,18 +49,18 @@ func readAppsetFromURI(fileURL string, appset *[]*argoprojiov1alpha1.Application
|
||||
func readAppset(yml []byte, appsets *[]*argoprojiov1alpha1.ApplicationSet) error {
|
||||
yamls, err := kube.SplitYAMLToString(yml)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error splitting YAML to string: %w", err)
|
||||
return err
|
||||
}
|
||||
|
||||
for _, yml := range yamls {
|
||||
var appset argoprojiov1alpha1.ApplicationSet
|
||||
err = config.Unmarshal([]byte(yml), &appset)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error unmarshalling appset: %w", err)
|
||||
return err
|
||||
}
|
||||
*appsets = append(*appsets, &appset)
|
||||
|
||||
}
|
||||
|
||||
return fmt.Errorf("error reading app set: %w", err)
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -138,7 +138,7 @@ func readProjFromURI(fileURL string, proj *v1alpha1.AppProject) error {
|
||||
} else {
|
||||
err = config.UnmarshalRemoteFile(fileURL, &proj)
|
||||
}
|
||||
return fmt.Errorf("error reading proj from uri: %w", err)
|
||||
return err
|
||||
}
|
||||
|
||||
func SetProjSpecOptions(flags *pflag.FlagSet, spec *v1alpha1.AppProjectSpec, projOpts *ProjectOpts) int {
|
||||
|
||||
@@ -203,6 +203,11 @@ func (s *Service) generateManifest(ctx context.Context, appDir string, envEntrie
|
||||
|
||||
manifests, err := kube.SplitYAMLToString([]byte(out))
|
||||
if err != nil {
|
||||
sanitizedManifests := manifests
|
||||
if len(sanitizedManifests) > 1000 {
|
||||
sanitizedManifests = manifests[:1000]
|
||||
}
|
||||
log.Debugf("Failed to split generated manifests. Beginning of generated manifests: %q", sanitizedManifests)
|
||||
return &apiclient.ManifestResponse{}, err
|
||||
}
|
||||
|
||||
|
||||
@@ -907,7 +907,7 @@ func (ctrl *ApplicationController) processProjectQueueItem() (processNext bool)
|
||||
func (ctrl *ApplicationController) finalizeProjectDeletion(proj *appv1.AppProject) error {
|
||||
apps, err := ctrl.appLister.Applications(ctrl.namespace).List(labels.Everything())
|
||||
if err != nil {
|
||||
return fmt.Errorf("error listing applications: %w", err)
|
||||
return err
|
||||
}
|
||||
appsCount := 0
|
||||
for i := range apps {
|
||||
@@ -1077,7 +1077,7 @@ func (ctrl *ApplicationController) finalizeApplicationDeletion(app *appv1.Applic
|
||||
func (ctrl *ApplicationController) removeCascadeFinalizer(app *appv1.Application) error {
|
||||
_, err := ctrl.getAppProj(app)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error getting project: %w", err)
|
||||
return err
|
||||
}
|
||||
app.UnSetCascadedDeletion()
|
||||
var patch []byte
|
||||
@@ -1256,12 +1256,12 @@ func (ctrl *ApplicationController) setOperationState(app *appv1.Application, sta
|
||||
}
|
||||
patchJSON, err := json.Marshal(patch)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error marshaling json: %w", err)
|
||||
return err
|
||||
}
|
||||
if app.Status.OperationState != nil && app.Status.OperationState.FinishedAt != nil && state.FinishedAt == nil {
|
||||
patchJSON, err = jsonpatch.MergeMergePatches(patchJSON, []byte(`{"status": {"operationState": {"finishedAt": null}}}`))
|
||||
if err != nil {
|
||||
return fmt.Errorf("error merging operation state patch: %w", err)
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1272,7 +1272,7 @@ func (ctrl *ApplicationController) setOperationState(app *appv1.Application, sta
|
||||
if apierr.IsNotFound(err) {
|
||||
return nil
|
||||
}
|
||||
return fmt.Errorf("error patching application with operation state: %w", err)
|
||||
return err
|
||||
}
|
||||
log.Infof("updated '%s' operation (phase: %s)", app.QualifiedName(), state.Phase)
|
||||
if state.Phase.Completed() {
|
||||
@@ -1497,17 +1497,7 @@ func (ctrl *ApplicationController) refreshAppConditions(app *appv1.Application)
|
||||
errorConditions := make([]appv1.ApplicationCondition, 0)
|
||||
proj, err := ctrl.getAppProj(app)
|
||||
if err != nil {
|
||||
if apierr.IsNotFound(err) {
|
||||
errorConditions = append(errorConditions, appv1.ApplicationCondition{
|
||||
Type: appv1.ApplicationConditionInvalidSpecError,
|
||||
Message: fmt.Sprintf("Application referencing project %s which does not exist", app.Spec.Project),
|
||||
})
|
||||
} else {
|
||||
errorConditions = append(errorConditions, appv1.ApplicationCondition{
|
||||
Type: appv1.ApplicationConditionUnknownError,
|
||||
Message: err.Error(),
|
||||
})
|
||||
}
|
||||
errorConditions = append(errorConditions, ctrl.projectErrorToCondition(err, app))
|
||||
} else {
|
||||
specConditions, err := argo.ValidatePermissions(context.Background(), &app.Spec, proj, ctrl.db)
|
||||
if err != nil {
|
||||
@@ -1798,7 +1788,7 @@ func (ctrl *ApplicationController) newApplicationInformerAndLister() (cache.Shar
|
||||
// If the application is not allowed to use the project,
|
||||
// log an error.
|
||||
if _, err := ctrl.getAppProj(app); err != nil {
|
||||
ctrl.setAppCondition(app, appv1.ApplicationCondition{Type: appv1.ApplicationConditionUnknownError, Message: err.Error()})
|
||||
ctrl.setAppCondition(app, ctrl.projectErrorToCondition(err, app))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1869,6 +1859,19 @@ func (ctrl *ApplicationController) newApplicationInformerAndLister() (cache.Shar
|
||||
return informer, lister
|
||||
}
|
||||
|
||||
func (ctrl *ApplicationController) projectErrorToCondition(err error, app *appv1.Application) appv1.ApplicationCondition {
|
||||
var condition appv1.ApplicationCondition
|
||||
if apierr.IsNotFound(err) {
|
||||
condition = appv1.ApplicationCondition{
|
||||
Type: appv1.ApplicationConditionInvalidSpecError,
|
||||
Message: fmt.Sprintf("Application referencing project %s which does not exist", app.Spec.Project),
|
||||
}
|
||||
} else {
|
||||
condition = appv1.ApplicationCondition{Type: appv1.ApplicationConditionUnknownError, Message: err.Error()}
|
||||
}
|
||||
return condition
|
||||
}
|
||||
|
||||
func (ctrl *ApplicationController) RegisterClusterSecretUpdater(ctx context.Context) {
|
||||
updater := NewClusterInfoUpdater(ctrl.stateCache, ctrl.db, ctrl.appLister.Applications(""), ctrl.cache, ctrl.clusterFilter, ctrl.getAppProj, ctrl.namespace)
|
||||
go updater.Run(ctx)
|
||||
|
||||
@@ -1068,6 +1068,34 @@ func TestUpdateReconciledAt(t *testing.T) {
|
||||
|
||||
}
|
||||
|
||||
func TestProjectErrorToCondition(t *testing.T) {
|
||||
app := newFakeApp()
|
||||
app.Spec.Project = "wrong project"
|
||||
ctrl := newFakeController(&fakeData{
|
||||
apps: []runtime.Object{app, &defaultProj},
|
||||
manifestResponse: &apiclient.ManifestResponse{
|
||||
Manifests: []string{},
|
||||
Namespace: test.FakeDestNamespace,
|
||||
Server: test.FakeClusterURL,
|
||||
Revision: "abc123",
|
||||
},
|
||||
managedLiveObjs: make(map[kube.ResourceKey]*unstructured.Unstructured),
|
||||
})
|
||||
key, _ := cache.MetaNamespaceKeyFunc(app)
|
||||
ctrl.appRefreshQueue.Add(key)
|
||||
ctrl.requestAppRefresh(app.Name, CompareWithRecent.Pointer(), nil)
|
||||
|
||||
ctrl.processAppRefreshQueueItem()
|
||||
|
||||
obj, ok, err := ctrl.appInformer.GetIndexer().GetByKey(key)
|
||||
assert.True(t, ok)
|
||||
assert.NoError(t, err)
|
||||
updatedApp := obj.(*argoappv1.Application)
|
||||
assert.Equal(t, argoappv1.ApplicationConditionInvalidSpecError, updatedApp.Status.Conditions[0].Type)
|
||||
assert.Equal(t, "Application referencing project wrong project which does not exist", updatedApp.Status.Conditions[0].Message)
|
||||
assert.Equal(t, argoappv1.ApplicationConditionInvalidSpecError, updatedApp.Status.Conditions[0].Type)
|
||||
}
|
||||
|
||||
func TestFinalizeProjectDeletion_HasApplications(t *testing.T) {
|
||||
app := newFakeApp()
|
||||
proj := &argoappv1.AppProject{ObjectMeta: metav1.ObjectMeta{Name: "default", Namespace: test.FakeArgoCDNamespace}}
|
||||
|
||||
8
controller/cache/cache.go
vendored
8
controller/cache/cache.go
vendored
@@ -382,7 +382,7 @@ func (c *liveStateCache) getCluster(server string) (clustercache.ClusterCache, e
|
||||
|
||||
cluster, err := c.db.GetCluster(context.Background(), server)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error getting cluster: %w", err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if !c.canHandleCluster(cluster) {
|
||||
@@ -456,11 +456,11 @@ func (c *liveStateCache) getCluster(server string) (clustercache.ClusterCache, e
|
||||
func (c *liveStateCache) getSyncedCluster(server string) (clustercache.ClusterCache, error) {
|
||||
clusterCache, err := c.getCluster(server)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error getting cluster: %w", err)
|
||||
return nil, err
|
||||
}
|
||||
err = clusterCache.EnsureSynced()
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error synchronizing cache state : %w", err)
|
||||
return nil, err
|
||||
}
|
||||
return clusterCache, nil
|
||||
}
|
||||
@@ -594,7 +594,7 @@ func (c *liveStateCache) watchSettings(ctx context.Context) {
|
||||
func (c *liveStateCache) Init() error {
|
||||
cacheSettings, err := c.loadCacheSettings()
|
||||
if err != nil {
|
||||
return fmt.Errorf("error loading cache settings: %w", err)
|
||||
return err
|
||||
}
|
||||
c.cacheSettings = *cacheSettings
|
||||
return nil
|
||||
|
||||
@@ -3,7 +3,7 @@ package controller
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
"fmt"
|
||||
|
||||
"github.com/argoproj/gitops-engine/pkg/cache"
|
||||
"github.com/argoproj/gitops-engine/pkg/utils/kube"
|
||||
log "github.com/sirupsen/logrus"
|
||||
@@ -93,7 +93,7 @@ func (c *clusterInfoUpdater) updateClusters() {
|
||||
func (c *clusterInfoUpdater) updateClusterInfo(cluster appv1.Cluster, info *cache.ClusterInfo) error {
|
||||
apps, err := c.appLister.List(labels.Everything())
|
||||
if err != nil {
|
||||
return fmt.Errorf("error while fetching the apps list: %w", err)
|
||||
return err
|
||||
}
|
||||
var appCount int64
|
||||
for _, a := range apps {
|
||||
|
||||
@@ -41,30 +41,27 @@ func setApplicationHealth(resources []managedResource, statuses []appv1.Resource
|
||||
savedErr = err
|
||||
}
|
||||
}
|
||||
if healthStatus != nil {
|
||||
if persistResourceHealth {
|
||||
resHealth := appv1.HealthStatus{Status: healthStatus.Status, Message: healthStatus.Message}
|
||||
statuses[i].Health = &resHealth
|
||||
} else {
|
||||
statuses[i].Health = nil
|
||||
}
|
||||
|
||||
if healthStatus == nil {
|
||||
continue
|
||||
}
|
||||
// Is health status is missing but resource has not built-in/custom health check then it should not affect parent app health
|
||||
if _, hasOverride := healthOverrides[lua.GetConfigMapKey(gvk)]; healthStatus.Status == health.HealthStatusMissing && !hasOverride && health.GetHealthCheckFunc(gvk) == nil {
|
||||
continue
|
||||
}
|
||||
|
||||
if persistResourceHealth {
|
||||
resHealth := appv1.HealthStatus{Status: healthStatus.Status, Message: healthStatus.Message}
|
||||
statuses[i].Health = &resHealth
|
||||
} else {
|
||||
statuses[i].Health = nil
|
||||
}
|
||||
// Missing or Unknown health status of child Argo CD app should not affect parent
|
||||
if res.Kind == application.ApplicationKind && res.Group == application.Group && (healthStatus.Status == health.HealthStatusMissing || healthStatus.Status == health.HealthStatusUnknown) {
|
||||
continue
|
||||
}
|
||||
|
||||
// Is health status is missing but resource has not built-in/custom health check then it should not affect parent app health
|
||||
if _, hasOverride := healthOverrides[lua.GetConfigMapKey(gvk)]; healthStatus.Status == health.HealthStatusMissing && !hasOverride && health.GetHealthCheckFunc(gvk) == nil {
|
||||
continue
|
||||
}
|
||||
|
||||
// Missing or Unknown health status of child Argo CD app should not affect parent
|
||||
if res.Kind == application.ApplicationKind && res.Group == application.Group && (healthStatus.Status == health.HealthStatusMissing || healthStatus.Status == health.HealthStatusUnknown) {
|
||||
continue
|
||||
}
|
||||
|
||||
if health.IsWorse(appHealth.Status, healthStatus.Status) {
|
||||
appHealth.Status = healthStatus.Status
|
||||
if health.IsWorse(appHealth.Status, healthStatus.Status) {
|
||||
appHealth.Status = healthStatus.Status
|
||||
}
|
||||
}
|
||||
}
|
||||
if persistResourceHealth {
|
||||
|
||||
@@ -13,7 +13,7 @@ import (
|
||||
"github.com/argoproj/gitops-engine/pkg/health"
|
||||
"github.com/prometheus/client_golang/prometheus"
|
||||
"github.com/prometheus/client_golang/prometheus/promhttp"
|
||||
"github.com/robfig/cron/v3"
|
||||
"github.com/robfig/cron"
|
||||
log "github.com/sirupsen/logrus"
|
||||
"k8s.io/apimachinery/pkg/labels"
|
||||
|
||||
@@ -193,10 +193,7 @@ func NewMetricsServer(addr string, appLister applister.ApplicationLister, appFil
|
||||
redisRequestCounter: redisRequestCounter,
|
||||
redisRequestHistogram: redisRequestHistogram,
|
||||
hostname: hostname,
|
||||
// This cron is used to expire the metrics cache.
|
||||
// Currently clearing the metrics cache is logging and deleting from the map
|
||||
// so there is no possibility of panic, but we will add a chain to keep robfig/cron v1 behavior.
|
||||
cron: cron.New(cron.WithChain(cron.Recover(cron.PrintfLogger(log.StandardLogger())))),
|
||||
cron: cron.New(),
|
||||
}, nil
|
||||
}
|
||||
|
||||
@@ -284,7 +281,7 @@ func (m *MetricsServer) SetExpiration(cacheExpiration time.Duration) error {
|
||||
return errors.New("Expiration is already set")
|
||||
}
|
||||
|
||||
_, err := m.cron.AddFunc(fmt.Sprintf("@every %s", cacheExpiration), func() {
|
||||
err := m.cron.AddFunc(fmt.Sprintf("@every %s", cacheExpiration), func() {
|
||||
log.Infof("Reset Prometheus metrics based on existing expiration '%v'", cacheExpiration)
|
||||
m.syncCounter.Reset()
|
||||
m.kubectlExecCounter.Reset()
|
||||
|
||||
@@ -514,7 +514,7 @@ func (m *appStateManager) CompareAppState(app *v1alpha1.Application, project *ap
|
||||
}
|
||||
gvk := obj.GroupVersionKind()
|
||||
|
||||
isSelfReferencedObj := m.isSelfReferencedObj(liveObj, appLabelKey, trackingMethod)
|
||||
isSelfReferencedObj := m.isSelfReferencedObj(liveObj, targetObj, app.GetName(), appLabelKey, trackingMethod)
|
||||
|
||||
resState := v1alpha1.ResourceStatus{
|
||||
Namespace: obj.GetNamespace(),
|
||||
@@ -659,7 +659,7 @@ func (m *appStateManager) persistRevisionHistory(app *v1alpha1.Application, revi
|
||||
},
|
||||
})
|
||||
if err != nil {
|
||||
return fmt.Errorf("error marshaling revision history patch: %w", err)
|
||||
return err
|
||||
}
|
||||
_, err = m.appclientset.ArgoprojV1alpha1().Applications(app.Namespace).Patch(context.Background(), app.Name, types.MergePatchType, patch, metav1.PatchOptions{})
|
||||
return err
|
||||
@@ -699,12 +699,13 @@ func NewAppStateManager(
|
||||
}
|
||||
|
||||
// isSelfReferencedObj returns whether the given obj is managed by the application
|
||||
// according to the values in the tracking annotation. It returns true when all
|
||||
// of the properties in the annotation (name, namespace, group and kind) match
|
||||
// the properties of the inspected object, or if the tracking method used does
|
||||
// not provide the required properties for matching.
|
||||
func (m *appStateManager) isSelfReferencedObj(obj *unstructured.Unstructured, appLabelKey string, trackingMethod v1alpha1.TrackingMethod) bool {
|
||||
if obj == nil {
|
||||
// according to the values of the tracking id (aka app instance value) annotation.
|
||||
// It returns true when all of the properties of the tracking id (app name, namespace,
|
||||
// group and kind) match the properties of the live object, or if the tracking method
|
||||
// used does not provide the required properties for matching.
|
||||
// Reference: https://github.com/argoproj/argo-cd/issues/8683
|
||||
func (m *appStateManager) isSelfReferencedObj(live, config *unstructured.Unstructured, appName, appLabelKey string, trackingMethod v1alpha1.TrackingMethod) bool {
|
||||
if live == nil {
|
||||
return true
|
||||
}
|
||||
|
||||
@@ -714,17 +715,42 @@ func (m *appStateManager) isSelfReferencedObj(obj *unstructured.Unstructured, ap
|
||||
return true
|
||||
}
|
||||
|
||||
// In order for us to assume obj to be managed by this application, the
|
||||
// values from the annotation have to match the properties from the live
|
||||
// object. Cluster scoped objects carry the app's destination namespace
|
||||
// in the tracking annotation, but are unique in GVK + name combination.
|
||||
appInstance := m.resourceTracking.GetAppInstance(obj, appLabelKey, trackingMethod)
|
||||
if appInstance != nil {
|
||||
return (obj.GetNamespace() == appInstance.Namespace || obj.GetNamespace() == "") &&
|
||||
obj.GetName() == appInstance.Name &&
|
||||
obj.GetObjectKind().GroupVersionKind().Group == appInstance.Group &&
|
||||
obj.GetObjectKind().GroupVersionKind().Kind == appInstance.Kind
|
||||
// config != nil is the best-case scenario for constructing an accurate
|
||||
// Tracking ID. `config` is the "desired state" (from git/helm/etc.).
|
||||
// Using the desired state is important when there is an ApiGroup upgrade.
|
||||
// When upgrading, the comparison must be made with the new tracking ID.
|
||||
// Example:
|
||||
// live resource annotation will be:
|
||||
// ingress-app:extensions/Ingress:default/some-ingress
|
||||
// when it should be:
|
||||
// ingress-app:networking.k8s.io/Ingress:default/some-ingress
|
||||
// More details in: https://github.com/argoproj/argo-cd/pull/11012
|
||||
var aiv argo.AppInstanceValue
|
||||
if config != nil {
|
||||
aiv = argo.UnstructuredToAppInstanceValue(config, appName, "")
|
||||
return isSelfReferencedObj(live, aiv)
|
||||
}
|
||||
|
||||
// If config is nil then compare the live resource with the value
|
||||
// of the annotation. In this case, in order to validate if obj is
|
||||
// managed by this application, the values from the annotation have
|
||||
// to match the properties from the live object. Cluster scoped objects
|
||||
// carry the app's destination namespace in the tracking annotation,
|
||||
// but are unique in GVK + name combination.
|
||||
appInstance := m.resourceTracking.GetAppInstance(live, appLabelKey, trackingMethod)
|
||||
if appInstance != nil {
|
||||
return isSelfReferencedObj(live, *appInstance)
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
// isSelfReferencedObj returns true if the given Tracking ID (`aiv`) matches
|
||||
// the given object. It returns false when the ID doesn't match. This sometimes
|
||||
// happens when a tracking label or annotation gets accidentally copied to a
|
||||
// different resource.
|
||||
func isSelfReferencedObj(obj *unstructured.Unstructured, aiv argo.AppInstanceValue) bool {
|
||||
return (obj.GetNamespace() == aiv.Namespace || obj.GetNamespace() == "") &&
|
||||
obj.GetName() == aiv.Name &&
|
||||
obj.GetObjectKind().GroupVersionKind().Group == aiv.Group &&
|
||||
obj.GetObjectKind().GroupVersionKind().Kind == aiv.Kind
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ import (
|
||||
"github.com/stretchr/testify/assert"
|
||||
v1 "k8s.io/api/apps/v1"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
networkingv1 "k8s.io/api/networking/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
@@ -852,6 +853,19 @@ func TestIsLiveResourceManaged(t *testing.T) {
|
||||
},
|
||||
},
|
||||
})
|
||||
managedWrongAPIGroup := kube.MustToUnstructured(&networkingv1.Ingress{
|
||||
TypeMeta: metav1.TypeMeta{
|
||||
APIVersion: "networking.k8s.io/v1",
|
||||
Kind: "Ingress",
|
||||
},
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "some-ingress",
|
||||
Namespace: "default",
|
||||
Annotations: map[string]string{
|
||||
common.AnnotationKeyAppInstance: "guestbook:extensions/Ingress:default/some-ingress",
|
||||
},
|
||||
},
|
||||
})
|
||||
ctrl := newFakeController(&fakeData{
|
||||
apps: []runtime.Object{app, &defaultProj},
|
||||
manifestResponse: &apiclient.ManifestResponse{
|
||||
@@ -870,30 +884,69 @@ func TestIsLiveResourceManaged(t *testing.T) {
|
||||
})
|
||||
|
||||
manager := ctrl.appStateManager.(*appStateManager)
|
||||
appName := "guestbook"
|
||||
|
||||
// Managed resource w/ annotations
|
||||
assert.True(t, manager.isSelfReferencedObj(managedObj, common.AnnotationKeyAppInstance, argo.TrackingMethodLabel))
|
||||
assert.True(t, manager.isSelfReferencedObj(managedObj, common.AnnotationKeyAppInstance, argo.TrackingMethodAnnotation))
|
||||
t.Run("will return true if trackingid matches the resource", func(t *testing.T) {
|
||||
// given
|
||||
t.Parallel()
|
||||
configObj := managedObj.DeepCopy()
|
||||
|
||||
// Managed resource w/ label
|
||||
assert.True(t, manager.isSelfReferencedObj(managedObjWithLabel, common.AnnotationKeyAppInstance, argo.TrackingMethodLabel))
|
||||
// then
|
||||
assert.True(t, manager.isSelfReferencedObj(managedObj, configObj, appName, common.AnnotationKeyAppInstance, argo.TrackingMethodLabel))
|
||||
assert.True(t, manager.isSelfReferencedObj(managedObj, configObj, appName, common.AnnotationKeyAppInstance, argo.TrackingMethodAnnotation))
|
||||
})
|
||||
t.Run("will return true if tracked with label", func(t *testing.T) {
|
||||
// given
|
||||
t.Parallel()
|
||||
configObj := managedObjWithLabel.DeepCopy()
|
||||
|
||||
// Wrong resource name
|
||||
assert.True(t, manager.isSelfReferencedObj(unmanagedObjWrongName, common.AnnotationKeyAppInstance, argo.TrackingMethodLabel))
|
||||
assert.False(t, manager.isSelfReferencedObj(unmanagedObjWrongName, common.AnnotationKeyAppInstance, argo.TrackingMethodAnnotation))
|
||||
// then
|
||||
assert.True(t, manager.isSelfReferencedObj(managedObjWithLabel, configObj, appName, common.AnnotationKeyAppInstance, argo.TrackingMethodLabel))
|
||||
})
|
||||
t.Run("will handle if trackingId has wrong resource name and config is nil", func(t *testing.T) {
|
||||
// given
|
||||
t.Parallel()
|
||||
|
||||
// Wrong resource group
|
||||
assert.True(t, manager.isSelfReferencedObj(unmanagedObjWrongGroup, common.AnnotationKeyAppInstance, argo.TrackingMethodLabel))
|
||||
assert.False(t, manager.isSelfReferencedObj(unmanagedObjWrongGroup, common.AnnotationKeyAppInstance, argo.TrackingMethodAnnotation))
|
||||
// then
|
||||
assert.True(t, manager.isSelfReferencedObj(unmanagedObjWrongName, nil, appName, common.AnnotationKeyAppInstance, argo.TrackingMethodLabel))
|
||||
assert.False(t, manager.isSelfReferencedObj(unmanagedObjWrongName, nil, appName, common.AnnotationKeyAppInstance, argo.TrackingMethodAnnotation))
|
||||
})
|
||||
t.Run("will handle if trackingId has wrong resource group and config is nil", func(t *testing.T) {
|
||||
// given
|
||||
t.Parallel()
|
||||
|
||||
// Wrong resource kind
|
||||
assert.True(t, manager.isSelfReferencedObj(unmanagedObjWrongKind, common.AnnotationKeyAppInstance, argo.TrackingMethodLabel))
|
||||
assert.False(t, manager.isSelfReferencedObj(unmanagedObjWrongKind, common.AnnotationKeyAppInstance, argo.TrackingMethodAnnotation))
|
||||
// then
|
||||
assert.True(t, manager.isSelfReferencedObj(unmanagedObjWrongGroup, nil, appName, common.AnnotationKeyAppInstance, argo.TrackingMethodLabel))
|
||||
assert.False(t, manager.isSelfReferencedObj(unmanagedObjWrongGroup, nil, appName, common.AnnotationKeyAppInstance, argo.TrackingMethodAnnotation))
|
||||
})
|
||||
t.Run("will handle if trackingId has wrong kind and config is nil", func(t *testing.T) {
|
||||
// given
|
||||
t.Parallel()
|
||||
|
||||
// Wrong resource namespace
|
||||
assert.True(t, manager.isSelfReferencedObj(unmanagedObjWrongNamespace, common.AnnotationKeyAppInstance, argo.TrackingMethodLabel))
|
||||
assert.False(t, manager.isSelfReferencedObj(unmanagedObjWrongNamespace, common.AnnotationKeyAppInstance, argo.TrackingMethodAnnotationAndLabel))
|
||||
// then
|
||||
assert.True(t, manager.isSelfReferencedObj(unmanagedObjWrongKind, nil, appName, common.AnnotationKeyAppInstance, argo.TrackingMethodLabel))
|
||||
assert.False(t, manager.isSelfReferencedObj(unmanagedObjWrongKind, nil, appName, common.AnnotationKeyAppInstance, argo.TrackingMethodAnnotation))
|
||||
})
|
||||
t.Run("will handle if trackingId has wrong namespace and config is nil", func(t *testing.T) {
|
||||
// given
|
||||
t.Parallel()
|
||||
|
||||
// Nil resource
|
||||
assert.True(t, manager.isSelfReferencedObj(nil, common.AnnotationKeyAppInstance, argo.TrackingMethodAnnotation))
|
||||
// then
|
||||
assert.True(t, manager.isSelfReferencedObj(unmanagedObjWrongNamespace, nil, appName, common.AnnotationKeyAppInstance, argo.TrackingMethodLabel))
|
||||
assert.False(t, manager.isSelfReferencedObj(unmanagedObjWrongNamespace, nil, appName, common.AnnotationKeyAppInstance, argo.TrackingMethodAnnotationAndLabel))
|
||||
})
|
||||
t.Run("will return true if live is nil", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
assert.True(t, manager.isSelfReferencedObj(nil, nil, appName, common.AnnotationKeyAppInstance, argo.TrackingMethodAnnotation))
|
||||
})
|
||||
|
||||
t.Run("will handle upgrade in desired state APIGroup", func(t *testing.T) {
|
||||
// given
|
||||
t.Parallel()
|
||||
config := managedWrongAPIGroup.DeepCopy()
|
||||
delete(config.GetAnnotations(), common.AnnotationKeyAppInstance)
|
||||
|
||||
// then
|
||||
assert.True(t, manager.isSelfReferencedObj(managedWrongAPIGroup, config, appName, common.AnnotationKeyAppInstance, argo.TrackingMethodAnnotation))
|
||||
})
|
||||
}
|
||||
|
||||
@@ -246,7 +246,7 @@ func (m *appStateManager) SyncAppState(app *v1alpha1.Application, state *v1alpha
|
||||
sync.WithResourcesFilter(func(key kube.ResourceKey, target *unstructured.Unstructured, live *unstructured.Unstructured) bool {
|
||||
return (len(syncOp.Resources) == 0 ||
|
||||
argo.ContainsSyncResource(key.Name, key.Namespace, schema.GroupVersionKind{Kind: key.Kind, Group: key.Group}, syncOp.Resources)) &&
|
||||
m.isSelfReferencedObj(live, appLabelKey, trackingMethod)
|
||||
m.isSelfReferencedObj(live, target, app.GetName(), appLabelKey, trackingMethod)
|
||||
}),
|
||||
sync.WithManifestValidation(!syncOp.SyncOptions.HasOption(common.SyncOptionsDisableValidation)),
|
||||
sync.WithNamespaceCreation(syncOp.SyncOptions.HasOption("CreateNamespace=true"), func(un *unstructured.Unstructured) bool {
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
Money given to the Argo CD project as part of the Internet Bug Bounty program is used in three ways:
|
||||
|
||||
1. To reward CVE patch contributors
|
||||
2. To offer bounties on security enhancements (as announced by label/comment on Issues)
|
||||
3. To sponsor security-relevant dependencies
|
||||
|
||||
If someone’s primary full-time job responsibility is to work on Argo CD, then their eligibility to receive this money is limited. (Determining this is up to the maintainers’ discretion. Someone who contributes an average of three commits per week during work hours probably meets the definition. A first-time contributor who uses Argo CD daily as an SRE does not.)
|
||||
|
||||
A full-time Argo CD author is not eligible to receive rewards for CVE patch contributions. This avoids any risk of the appearance that a full-time Argo CD author is incentivized to introduce CVEs.
|
||||
|
||||
A full-time Argo CD author is eligible to receive bounties for security enhancements if and only if the vast majority of the work is done in their free time (non-work hours). Busy work like resolving merge conflicts during work hours is acceptable (to avoid over-burdening the process).
|
||||
|
||||
An Argo CD dependency is eligible to receive donations if it is listed in the Argo CD SBOM or if it is a binary invoked by Argo CD (like Helm). The dependency is not eligible for donations if a full-time Argo CD author is the primary author of the dependency.
|
||||
|
||||
Offers and transfers of rewards, bounties, and donations will be made from time to time by the Argo CD maintainers, based on the current project needs and the amount of money available from IBB. The process should be lightweight and consensus-based for now. If necessary, a more structured system can be established based on experience gained from early rewards/bounties/donations
|
||||
112
docs/developer-guide/contributors-quickstart.md
Normal file
112
docs/developer-guide/contributors-quickstart.md
Normal file
@@ -0,0 +1,112 @@
|
||||
# Contributors Quick-Start
|
||||
|
||||
This guide is a starting point for first-time contributors running Argo CD locally for the first time.
|
||||
|
||||
It skips advanced topics such as codegen, which are covered in the [running locally guide](running-locally.md)
|
||||
and the [toolchain guide](toolchain-guide.md).
|
||||
|
||||
## Getting Started
|
||||
|
||||
### Install Go
|
||||
|
||||
- Install version 1.18 or newer (Verify version by running `go version`)
|
||||
|
||||
- Get current value of `GOPATH` env:
|
||||
```shell
|
||||
go env | grep path
|
||||
```
|
||||
- Change directory into that path
|
||||
```shell
|
||||
cd <path>
|
||||
```
|
||||
|
||||
### Clone the Argo CD repo
|
||||
|
||||
```shell
|
||||
mkdir -p src/github.com/argoproj/ &&
|
||||
cd src/github.com/argoproj &&
|
||||
git clone https://github.com/argoproj/argo-cd.git
|
||||
```
|
||||
|
||||
### Install Docker
|
||||
|
||||
<https://docs.docker.com/engine/install/>
|
||||
|
||||
### Install or Upgrade `kind` (Optional - Should work with any local cluster)
|
||||
|
||||
<https://kind.sigs.k8s.io/docs/user/quick-start/>
|
||||
|
||||
### Start Your Local Cluster
|
||||
|
||||
```shell
|
||||
kind create cluster
|
||||
```
|
||||
|
||||
### Install Argo CD
|
||||
|
||||
```shell
|
||||
kubectl create namespace argocd &&
|
||||
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/master/manifests/install.yaml
|
||||
```
|
||||
|
||||
Set kubectl config to avoid specifying the namespace in every kubectl command.
|
||||
All following commands in this guide assume the namespace is already set.
|
||||
|
||||
```shell
|
||||
kubectl config set-context --current --namespace=argocd
|
||||
```
|
||||
|
||||
### Install `yarn`
|
||||
|
||||
<https://classic.yarnpkg.com/lang/en/docs/install/>
|
||||
|
||||
### Install `goreman`
|
||||
|
||||
<https://github.com/mattn/goreman#getting-started>
|
||||
|
||||
### Run Argo CD
|
||||
|
||||
```shell
|
||||
cd argo-cd
|
||||
make start-local ARGOCD_GPG_ENABLED=false
|
||||
```
|
||||
|
||||
- Navigate to <localhost:4000> to the ArgoCD UI on browser
|
||||
- It may take a few minutes for the UI to be responsive
|
||||
|
||||
!!! note
|
||||
If the UI is not working, check the logs from `make start-local`. The logs are `DEBUG` level by default. If the logs are
|
||||
too noisy to find the problem, try editing log levels for the commands in the `Procfile` in the root of the Argo CD repo.
|
||||
|
||||
## Making Changes
|
||||
|
||||
### UI Changes
|
||||
|
||||
Modifying the User-Interface (by editing .tsx or .scss files) auto-reloads the changes on port 4000.
|
||||
|
||||
### Backend Changes
|
||||
|
||||
Modifying the API server, repo server, or a controller requires restarting the current `make start-local` session to reflect the changes.
|
||||
|
||||
### CLI Changes
|
||||
|
||||
Modifying the CLI requires restarting the current `make start-local` session to reflect the changes.
|
||||
|
||||
To test most CLI commands, you will need to log in.
|
||||
|
||||
First, get the auto-generated secret:
|
||||
|
||||
```shell
|
||||
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo
|
||||
```
|
||||
|
||||
Then log in using that password and username `admin`:
|
||||
|
||||
```shell
|
||||
dist/argocd login localhost:8080
|
||||
```
|
||||
|
||||
---
|
||||
Congrats on making it to the end of this runbook! 🚀
|
||||
|
||||
For more on Argo CD, find us in Slack - <https://slack.cncf.io/> [#argo-contributors](https://cloud-native.slack.com/archives/C020XM04CUW)
|
||||
@@ -20,34 +20,6 @@ curl -sSfL https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/i
|
||||
## Connect
|
||||
Connect to one of the services, for example, to debug the main ArgoCD server run:
|
||||
```shell
|
||||
telepresence helm install # Installs telepresence into your cluster
|
||||
telepresence connect # Starts the connection to your cluster
|
||||
telepresence intercept argocd-server --port 8083:8083 --port 8080:8080 --env-file .envrc.remote --namespace argocd # Starts the interception
|
||||
```
|
||||
* `--port` forwards traffic of remote ports 8080 and 8083 to the same ports locally
|
||||
* `--env-file` writes all the environment variables of the remote pod into a local file, the variables are also set on the subprocess of the `--run` command
|
||||
* `--namespace` specifies that the `argocd-server` is located in the `argocd` namespace
|
||||
|
||||
List current status of Telepresence using:
|
||||
```shell
|
||||
telepresence status
|
||||
```
|
||||
|
||||
Stop the intercept using:
|
||||
```shell
|
||||
telepresence leave argocd-server-argocd
|
||||
```
|
||||
|
||||
And uninstall telepresence from your cluster:
|
||||
```shell
|
||||
telepresence helm uninstall
|
||||
```
|
||||
|
||||
See [this quickstart](https://www.telepresence.io/docs/latest/howtos/intercepts/) for more information on how to intercept services using Telepresence.
|
||||
|
||||
### Connect (telepresence v1)
|
||||
Use the following command instead:
|
||||
```shell
|
||||
telepresence --swap-deployment argocd-server --namespace argocd --env-file .envrc.remote --expose 8080:8080 --expose 8083:8083 --run bash
|
||||
```
|
||||
* `--swap-deployment` changes the argocd-server deployment
|
||||
@@ -55,6 +27,7 @@ telepresence --swap-deployment argocd-server --namespace argocd --env-file .envr
|
||||
* `--env-file` writes all the environment variables of the remote pod into a local file, the variables are also set on the subprocess of the `--run` command
|
||||
* `--run` defines which command to run once a connection is established, use `bash`, `zsh` or others
|
||||
|
||||
|
||||
## Debug
|
||||
Once a connection is established, use your favorite tools to start the server locally.
|
||||
|
||||
@@ -71,14 +44,13 @@ Update the configuration file to point to kubeconfig file: `KUBECONFIG=` (requir
|
||||
"type": "go",
|
||||
"request": "launch",
|
||||
"mode": "auto",
|
||||
"program": "${workspaceFolder}/cmd/main.go",
|
||||
"program": "${workspaceFolder}/cmd/argocd-server",
|
||||
"envFile": [
|
||||
"${workspaceFolder}/.envrc.remote",
|
||||
],
|
||||
"env": {
|
||||
"ARGOCD_BINARY_NAME": "argocd-server",
|
||||
"CGO_ENABLED": "0",
|
||||
"KUBECONFIG": "/path/to/kube/config"
|
||||
}
|
||||
}
|
||||
```
|
||||
```
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
### Can I discuss my contribution ideas somewhere?
|
||||
|
||||
Sure thing! You can either open an Enhancement Proposal in our GitHub issue tracker or you can [join us on Slack](https://argoproj.github.io/community/join-slack) in channel #argo-contributors to discuss your ideas and get guidance for submitting a PR.
|
||||
Sure thing! You can either open an Enhancement Proposal in our GitHub issue tracker or you can [join us on Slack](https://argoproj.github.io/community/join-slack) in channel #argo-dev to discuss your ideas and get guidance for submitting a PR.
|
||||
|
||||
### No one has looked at my PR yet. Why?
|
||||
|
||||
|
||||
@@ -45,9 +45,10 @@ a secret named `argocd-initial-admin-secret`.
|
||||
To change the password, edit the `argocd-secret` secret and update the `admin.password` field with a new bcrypt hash.
|
||||
|
||||
!!! note "Generating a bcrypt hash"
|
||||
Use the following command to generate a bcrypt hash for `admin.password`
|
||||
Use a trustworthy, offline `bcrypt` implementation such as the [Python bcrypt library](https://pypi.org/project/bcrypt/) to generate the hash.
|
||||
|
||||
argocd account bcrypt --password <YOUR-PASSWORD-HERE>
|
||||
pip3 install bcrypt
|
||||
python3 -c "import bcrypt; print(bcrypt.hashpw(b'YOUR-PASSWORD-HERE', bcrypt.gensalt()).decode())"
|
||||
|
||||
To apply the new password hash, use the following command (replacing the hash with your own):
|
||||
|
||||
|
||||
@@ -45,6 +45,9 @@ spec:
|
||||
valueFiles:
|
||||
- values-prod.yaml
|
||||
|
||||
# Ignore locally missing valueFiles when installing Helm chart. Defaults to false
|
||||
ignoreMissingValueFiles: false
|
||||
|
||||
# Values file as block file
|
||||
values: |
|
||||
ingress:
|
||||
@@ -61,6 +64,9 @@ spec:
|
||||
hosts:
|
||||
- mydomain.example.com
|
||||
|
||||
# Skip custom resource definition installation if chart contains custom resource definitions. Defaults to false
|
||||
skipCrds: false
|
||||
|
||||
# Optional Helm version to template with. If omitted it will fall back to look at the 'apiVersion' in Chart.yaml
|
||||
# and decide which Helm binary to use automatically. This field can be either 'v2' or 'v3'.
|
||||
version: v2
|
||||
|
||||
@@ -318,3 +318,7 @@ The Pull Request Generator will requeue when the next action occurs.
|
||||
- `merge`
|
||||
|
||||
For more information about each event, please refer to the [official documentation](https://docs.gitlab.com/ee/user/project/integrations/webhook_events.html#merge-request-events).
|
||||
|
||||
## Lifecycle
|
||||
|
||||
An Application will be generated when a Pull Request is discovered when the configured criteria is met - i.e. for GitHub when a Pull Request matches the specified `labels` and/or `pullRequestState`. Application will be removed when a Pull Request no longer meets the specified criteria.
|
||||
|
||||
@@ -219,6 +219,41 @@ spec:
|
||||
* `api`: Optional. URL to Azure DevOps. If not set, `https://dev.azure.com` is used.
|
||||
* `allBranches`: Optional, default `false`. If `true`, scans every branch of eligible repositories. If `false`, check only the default branch of the eligible repositories.
|
||||
|
||||
## Bitbucket Cloud
|
||||
|
||||
The Bitbucket mode uses the Bitbucket API V2 to scan a workspace in bitbucket.org.
|
||||
|
||||
```yaml
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: ApplicationSet
|
||||
metadata:
|
||||
name: myapps
|
||||
spec:
|
||||
generators:
|
||||
- scmProvider:
|
||||
bitbucket:
|
||||
# The workspace id (slug).
|
||||
owner: "example-owner"
|
||||
# The user to use for basic authentication with an app password.
|
||||
user: "example-user"
|
||||
# If true, scan every branch of every repository. If false, scan only the main branch. Defaults to false.
|
||||
allBranches: true
|
||||
# Reference to a Secret containing an app password.
|
||||
appPasswordRef:
|
||||
secretName: appPassword
|
||||
key: password
|
||||
template:
|
||||
# ...
|
||||
```
|
||||
|
||||
* `owner`: The workspace ID (slug) to use when looking up repositories.
|
||||
* `user`: The user to use for authentication to the Bitbucket API V2 at bitbucket.org.
|
||||
* `allBranches`: By default (false) the template will only be evaluated for the main branch of each repo. If this is true, every branch of every repository will be passed to the filters. If using this flag, you likely want to use a `branchMatch` filter.
|
||||
* `appPasswordRef`: A `Secret` name and key containing the bitbucket app password to use for requests.
|
||||
|
||||
This SCM provider does not yet support label filtering
|
||||
|
||||
Available clone protocols are `ssh` and `https`.
|
||||
|
||||
## Filters
|
||||
|
||||
|
||||
@@ -74,13 +74,20 @@ All your templates must replace parameters with GoTemplate Syntax:
|
||||
|
||||
Example: `{{ some.value }}` becomes `{{ .some.value }}`
|
||||
|
||||
### Cluster Generators
|
||||
|
||||
By activating Go Templating, `{{ .metadata }}` becomes an object.
|
||||
|
||||
- `{{ metadata.labels.my-label }}` becomes `{{ index .metadata.labels "my-label" }}`
|
||||
- `{{ metadata.annotations.my/annotation }}` becomes `{{ index .metadata.annotations "my/annotation" }}`
|
||||
|
||||
### Git Generators
|
||||
|
||||
By activating Go Templating, `{{ .path }}` becomes an object. Therefore, some changes must be made to the Git
|
||||
generators' templating:
|
||||
|
||||
- `{{ path }}` becomes `{{ .path.path }}`
|
||||
- `{{ path[n] }}` becomes `{{ .path.segments[n] }}`
|
||||
- `{{ path[n] }}` becomes `{{ index .path.segments n }}`
|
||||
|
||||
Here is an example:
|
||||
|
||||
@@ -148,7 +155,7 @@ It is also possible to use Sprig functions to construct the path variables manua
|
||||
| `{{path.filename}}` | `{{.path.filename}}` | `{{.path.filename}}` |
|
||||
| `{{path.basenameNormalized}}` | `{{.path.basenameNormalized}}` | `{{normalize .path.path}}` |
|
||||
| `{{path.filenameNormalized}}` | `{{.path.filenameNormalized}}` | `{{normalize .path.filename}}` |
|
||||
| `{{path[N]}}` | `{{.path.segments[N]}}` | `{{index (splitList "/" .path.path) N}}` |
|
||||
| `{{path[N]}}` | `-` | `{{index .path.segments N}}` |
|
||||
|
||||
## Examples
|
||||
|
||||
|
||||
@@ -139,26 +139,6 @@ data:
|
||||
reposerver.streamed.manifest.max.tar.size: "100M"
|
||||
# Maximum size of extracted manifests when streaming manifests to the repo server for generation
|
||||
reposerver.streamed.manifest.max.extracted.size: "1G"
|
||||
# Enable git submodule support
|
||||
reposerver.enable.git.submodule: "true"
|
||||
|
||||
# Disable TLS on the HTTP endpoint
|
||||
dexserver.disable.tls: "false"
|
||||
|
||||
## ApplicationSet Controller Properties
|
||||
# Enable leader election for controller manager. Enabling this will ensure there is only one active controller manager.
|
||||
applicationsetcontroller.enable.leader.election: "false"
|
||||
# Argo CD repo namespace (default: argocd)
|
||||
applicationsetcontroller.namespace: ""
|
||||
# "Modify how application is synced between the generator and the cluster. Default is 'sync' (create & update & delete), options: 'create-only', 'create-update' (no deletion)"
|
||||
applicationsetcontroller.policy: "sync"
|
||||
# Print debug logs. Takes precedence over loglevel
|
||||
applicationsetcontroller.debug: "false"
|
||||
# Set the logging format. One of: text|json (default "text")
|
||||
applicationsetcontroller.log.format: "text"
|
||||
# Set the logging level. One of: debug|info|warn|error (default "info")
|
||||
applicationsetcontroller.log.level: "info"
|
||||
# Enable dry run mode
|
||||
applicationsetcontroller.dryrun: "false"
|
||||
# Enable git submodule support
|
||||
applicationsetcontroller.enable.git.submodule: "true"
|
||||
|
||||
@@ -80,7 +80,7 @@ resources:
|
||||
## Helm
|
||||
|
||||
The Argo CD can be installed using [Helm](https://helm.sh/). The Helm chart is currently community maintained and available at
|
||||
[argo-helm/charts/argo-cd](https://github.com/argoproj/argo-helm/tree/master/charts/argo-cd).
|
||||
[argo-helm/charts/argo-cd](https://github.com/argoproj/argo-helm/tree/main/charts/argo-cd).
|
||||
|
||||
## Supported versions
|
||||
|
||||
|
||||
@@ -67,8 +67,7 @@ Scraped at the `argocd-server-metrics:8083/metrics` endpoint.
|
||||
| Metric | Type | Description |
|
||||
|--------|:----:|-------------|
|
||||
| `argocd_redis_request_duration` | histogram | Redis requests duration. |
|
||||
| `argocd_redis_request_total` | counter | Number of kubernetes requests executed during application
|
||||
reconciliation. |
|
||||
| `argocd_redis_request_total` | counter | Number of kubernetes requests executed during application reconciliation. |
|
||||
| `grpc_server_handled_total` | counter | Total number of RPCs completed on the server, regardless of success or failure. |
|
||||
| `grpc_server_msg_sent_total` | counter | Total number of gRPC stream messages sent by the server. |
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
## notifications template get
|
||||
## argocd admin notifications template get
|
||||
|
||||
Prints information about configured templates
|
||||
|
||||
```
|
||||
notifications template get [flags]
|
||||
argocd admin notifications template get [flags]
|
||||
```
|
||||
|
||||
### Examples
|
||||
@@ -11,9 +11,9 @@ notifications template get [flags]
|
||||
```
|
||||
|
||||
# prints all templates
|
||||
notifications template get
|
||||
argocd admin notifications template get
|
||||
# print YAML formatted app-sync-succeeded template definition
|
||||
notifications template get app-sync-succeeded -o=yaml
|
||||
argocd admin notifications template get app-sync-succeeded -o=yaml
|
||||
|
||||
```
|
||||
|
||||
@@ -53,12 +53,12 @@ notifications template get app-sync-succeeded -o=yaml
|
||||
--username string Username for basic authentication to the API server
|
||||
```
|
||||
|
||||
## notifications template notify
|
||||
## argocd admin notifications template notify
|
||||
|
||||
Generates notification using the specified template and send it to specified recipients
|
||||
|
||||
```
|
||||
notifications template notify NAME RESOURCE_NAME [flags]
|
||||
argocd admin notifications template notify NAME RESOURCE_NAME [flags]
|
||||
```
|
||||
|
||||
### Examples
|
||||
@@ -66,10 +66,10 @@ notifications template notify NAME RESOURCE_NAME [flags]
|
||||
```
|
||||
|
||||
# Trigger notification using in-cluster config map and secret
|
||||
notifications template notify app-sync-succeeded guestbook --recipient slack:my-slack-channel
|
||||
argocd admin notifications template notify app-sync-succeeded guestbook --recipient slack:my-slack-channel
|
||||
|
||||
# Render notification render generated notification in console
|
||||
notifications template notify app-sync-succeeded guestbook
|
||||
argocd admin notifications template notify app-sync-succeeded guestbook
|
||||
|
||||
```
|
||||
|
||||
@@ -109,12 +109,12 @@ notifications template notify app-sync-succeeded guestbook
|
||||
--username string Username for basic authentication to the API server
|
||||
```
|
||||
|
||||
## notifications trigger get
|
||||
## argocd admin notifications trigger get
|
||||
|
||||
Prints information about configured triggers
|
||||
|
||||
```
|
||||
notifications trigger get [flags]
|
||||
argocd admin notifications trigger get [flags]
|
||||
```
|
||||
|
||||
### Examples
|
||||
@@ -122,9 +122,9 @@ notifications trigger get [flags]
|
||||
```
|
||||
|
||||
# prints all triggers
|
||||
notifications trigger get
|
||||
argocd admin notifications trigger get
|
||||
# print YAML formatted on-sync-failed trigger definition
|
||||
notifications trigger get on-sync-failed -o=yaml
|
||||
argocd admin notifications trigger get on-sync-failed -o=yaml
|
||||
|
||||
```
|
||||
|
||||
@@ -164,12 +164,12 @@ notifications trigger get on-sync-failed -o=yaml
|
||||
--username string Username for basic authentication to the API server
|
||||
```
|
||||
|
||||
## notifications trigger run
|
||||
## argocd admin notifications trigger run
|
||||
|
||||
Evaluates specified trigger condition and prints the result
|
||||
|
||||
```
|
||||
notifications trigger run NAME RESOURCE_NAME [flags]
|
||||
argocd admin notifications trigger run NAME RESOURCE_NAME [flags]
|
||||
```
|
||||
|
||||
### Examples
|
||||
@@ -177,10 +177,10 @@ notifications trigger run NAME RESOURCE_NAME [flags]
|
||||
```
|
||||
|
||||
# Execute trigger configured in 'argocd-notification-cm' ConfigMap
|
||||
notifications trigger run on-sync-status-unknown ./sample-app.yaml
|
||||
argocd admin notifications trigger run on-sync-status-unknown ./sample-app.yaml
|
||||
|
||||
# Execute trigger using my-config-map.yaml instead of 'argocd-notifications-cm' ConfigMap
|
||||
notifications trigger run on-sync-status-unknown ./sample-app.yaml \
|
||||
argocd admin notifications trigger run on-sync-status-unknown ./sample-app.yaml \
|
||||
--config-map ./my-config-map.yaml
|
||||
```
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
## Troubleshooting
|
||||
|
||||
The `argocd-notifications` binary includes a set of CLI commands that helps to configure the controller
|
||||
The `argocd admin notifications` is a CLI command group that helps to configure the controller
|
||||
settings and troubleshoot issues.
|
||||
|
||||
## Global flags
|
||||
@@ -17,15 +17,15 @@ Additionally, you can specify `:empty` value to use empty secret with no notific
|
||||
* Get list of triggers configured in the local config map:
|
||||
|
||||
```bash
|
||||
argocd-notifications trigger get \
|
||||
--config-map ./argocd-notifications-cm.yaml --secret :empty
|
||||
argocd admin notifications trigger get \
|
||||
--config-map ./argocd admin notifications-cm.yaml --secret :empty
|
||||
```
|
||||
|
||||
* Trigger notification using in-cluster config map and secret:
|
||||
|
||||
```bash
|
||||
argocd-notifications template notify \
|
||||
app-sync-succeeded guestbook --recipient slack:argocd-notifications
|
||||
argocd admin notifications template notify \
|
||||
app-sync-succeeded guestbook --recipient slack:argocd admin notifications
|
||||
```
|
||||
|
||||
## Kustomize
|
||||
@@ -44,18 +44,18 @@ kustomize build ./argocd-notifications | \
|
||||
|
||||
### On your laptop
|
||||
|
||||
You can download `argocd-notifications` from the github [release](https://github.com/argoproj-labs/argocd-notifications/releases)
|
||||
You can download the `argocd` CLI from the github [release](https://github.com/argoproj/argo-cd/releases)
|
||||
attachments.
|
||||
|
||||
The binary is available in `argoprojlabs/argocd-notifications` image. Use the `docker run` and volume mount
|
||||
The binary is available in `argoproj/argo-cd` image. Use the `docker run` and volume mount
|
||||
to execute binary on any platform.
|
||||
|
||||
**Example:**
|
||||
|
||||
```bash
|
||||
docker run --rm -it -w /src -v $(pwd):/src \
|
||||
argoprojlabs/argocd-notifications:<version> \
|
||||
/app/argocd-notifications trigger get \
|
||||
argoproj/argo-cd:<version> \
|
||||
/app/argocd admin notifications trigger get \
|
||||
--config-map ./argocd-notifications-cm.yaml --secret :empty
|
||||
```
|
||||
|
||||
@@ -67,7 +67,7 @@ configuration.
|
||||
**Example**
|
||||
```bash
|
||||
kubectl exec -it argocd-notifications-controller-<pod-hash> \
|
||||
/app/argocd-notifications trigger get
|
||||
/app/argocd admin notifications trigger get
|
||||
```
|
||||
|
||||
## Commands
|
||||
|
||||
@@ -12,5 +12,6 @@ Argo CD is un-opinionated about how secrets are managed. There's many ways to do
|
||||
* [KSOPS](https://github.com/viaduct-ai/kustomize-sops#argo-cd-integration)
|
||||
* [argocd-vault-plugin](https://github.com/argoproj-labs/argocd-vault-plugin)
|
||||
* [argocd-vault-replacer](https://github.com/crumbhole/argocd-vault-replacer)
|
||||
* [Kubernetes Secrets Store CSI Driver](https://github.com/kubernetes-sigs/secrets-store-csi-driver)
|
||||
|
||||
For discussion, see [#1364](https://github.com/argoproj/argo-cd/issues/1364)
|
||||
|
||||
@@ -12,7 +12,7 @@ Follow the [register app](https://auth0.com/docs/dashboard/guides/applications/r
|
||||
* Take note of the _clientId_ and _clientSecret_ values.
|
||||
* Register login url as https://your.argoingress.address/login
|
||||
* Set allowed callback url to https://your.argoingress.address/auth/callback
|
||||
* Under connections, select the user-registries you want to use with argo.
|
||||
* Under connections, select the user-registries you want to use with argo
|
||||
|
||||
Any other settings are non-essential for the authentication to work.
|
||||
|
||||
@@ -70,4 +70,4 @@ data:
|
||||
<br>
|
||||
|
||||
!!! note "Storing Client Secrets"
|
||||
Details on storing your clientSecret securely and correctly can be found on the [User Management Overview page](index.md#sensitive-data-and-sso-client-secrets).
|
||||
Details on storing your clientSecret securely and correctly can be found on the [User Management Overview page](../../user-management/#sensitive-data-and-sso-client-secrets).
|
||||
@@ -17,6 +17,8 @@ Configure the client by setting the __Access Type__ to _confidential_ and set th
|
||||
hostname. It should be https://{hostname}/auth/callback (you can also leave the default less secure https://{hostname}/* ). You can also set the
|
||||
__Base URL__ to _/applications_.
|
||||
|
||||
If you want to allow command line access, __Access Type__ must be set to _public_ and you also need to add http://localhost:8085/auth/callback in the list of Valid Redirect URIs. Then users can login using `argocd login {hostname} --sso`.
|
||||
|
||||

|
||||
|
||||
Make sure to click __Save__. You should now have a new tab called __Credentials__. You can copy the Secret that we'll use in our ArgoCD
|
||||
|
||||
@@ -1,425 +0,0 @@
|
||||
---
|
||||
title: Reverse Proxy Extensions
|
||||
|
||||
authors:
|
||||
- "@leoluz"
|
||||
|
||||
sponsors:
|
||||
- TBD
|
||||
|
||||
reviewers:
|
||||
- TBD
|
||||
|
||||
approvers:
|
||||
- TBD
|
||||
|
||||
creation-date: 2022-07-23
|
||||
|
||||
---
|
||||
|
||||
# Reverse-Proxy Extensions support for Argo CD
|
||||
|
||||
Enable UI extensions to use a backend service.
|
||||
|
||||
* [Summary](#summary)
|
||||
* [Motivation](#motivation)
|
||||
* [Goals](#goals)
|
||||
* [Non-Goals](#non-goals)
|
||||
* [Proposal](#proposal)
|
||||
* [Use cases](#use-cases)
|
||||
* [Security Considerations](#security-considerations)
|
||||
* [Risks and Mitigations](#risks-and-mitigations)
|
||||
* [Upgrade / Downgrade](#upgrade--downgrade)
|
||||
* [Drawbacks](#drawbacks)
|
||||
* [Open Questions](#open-questions)
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
Argo CD currently supports the creation of [UI extensions][1] allowing
|
||||
developers to define the visual content of the "more" tab inside
|
||||
a specific resource. Developers are able to access the resource state to
|
||||
build the UI. However, currently it isn't possible to use a backend
|
||||
service to provide additional functionality to extensions. This proposal
|
||||
defines a new reverse proxy feature in Argo CD, allowing developers to
|
||||
create a backend service that can be used in UI extensions. Extensions
|
||||
backend code will live outside Argo CD main repository.
|
||||
|
||||
## Motivation
|
||||
|
||||
The initiative to implement the anomaly detection capability in Argo CD
|
||||
highlighted the need to improve the existing UI extensions feature. The
|
||||
new capability will required the UI to have access to data that isn't
|
||||
available as part of Application's owned resources. It is necessary to
|
||||
access an API defined by the extension's development team so the proper
|
||||
information can be displayed.
|
||||
|
||||
## Goals
|
||||
|
||||
The following goals are desired but not necessarily all must be
|
||||
implemented in a given Argo CD release:
|
||||
|
||||
#### [G-1] Argo CD (API Server) must have low performance impact when running extensions
|
||||
|
||||
Argo CD API server is a critical component as it serves all APIs used by
|
||||
the CLI as well as the UI. The Argo CD team has no controll over what is
|
||||
going to be executed in extension's backend service. Thus it is important
|
||||
that the reverse proxy implementation to cause the lowest possible impact
|
||||
in the API server while processing high latency requests.
|
||||
|
||||
Possible solutions:
|
||||
- Implement a rate limit layer to protect Argo CD API server
|
||||
- Implement configurable different types of timeouts (idle connection,
|
||||
duration, etc) between Argo CD API server and backend services.
|
||||
- Implement the reverse proxy as a separate server/pod (needs discussion).
|
||||
|
||||
----
|
||||
|
||||
#### [G-2] Argo CD admins should be able to define rbacs to define which users can invoke specific extensions
|
||||
|
||||
Argo CD Admins must be able to define which extensions are allowed to be
|
||||
executed by the logged in user. This should be fine grained by Argo CD
|
||||
project like the current rbac implementation.
|
||||
|
||||
----
|
||||
|
||||
#### [G-3] Argo CD deployment should be independent from backend services
|
||||
|
||||
Extension developers should be able to deploy their backend services
|
||||
independently from Argo CD. An extension can evolve their internal API and
|
||||
deploying a new version shouldn't require Argo CD to be updated or
|
||||
restarted.
|
||||
|
||||
----
|
||||
|
||||
#### [G-4] Enhance the current Extensions framework to configure backend services
|
||||
|
||||
*Not in the first release*
|
||||
|
||||
[Argo CD extensions][2] is an `argoproj-labs` project that supports loading
|
||||
extensions in runtime. Currently the project is implementing a controller
|
||||
that defines and reconciles the custom resource `ArgoCDExtension`. This
|
||||
CRD should be enhanced to provide the ability to define backend services
|
||||
that will be used by the extension. Once configured UI can send requests
|
||||
to API server in a specific endpoint. API server will act as a reverse
|
||||
proxy receiving the request from the UI and routing to the appropriate
|
||||
backend service.
|
||||
|
||||
Example:
|
||||
```yaml
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: ArgoCDExtension
|
||||
metadata:
|
||||
name: my-cool-extention
|
||||
finalizers:
|
||||
- extensions-finalizer.argocd.argoproj.io
|
||||
spec:
|
||||
sources:
|
||||
- git:
|
||||
url: https://github.com/some-org/my-cool-extension.git
|
||||
backend:
|
||||
serviceName: some-backend-svc
|
||||
endpoint: /some-backend
|
||||
```
|
||||
|
||||
**Note**: While this is a nice-to-have, it won't be part of the first proxy
|
||||
extension version. This would need to be considered if Argo CD extensions
|
||||
eventually get traction.
|
||||
|
||||
----
|
||||
|
||||
#### [G-5] Setup multiple backend services for the same extension
|
||||
|
||||
In case of one Argo CD instance managing applications in multiple clusters, it
|
||||
will be necessary to configure backend service URLs per cluster for the same
|
||||
extension. This should be an optional configuration. If only one URL is
|
||||
configured, that one should be used for all clusters.
|
||||
|
||||
----
|
||||
|
||||
#### [G-6] Provide safe communication channel between Argo CD API server and extension backend
|
||||
|
||||
Argo CD API server should provide configuration for establishing a safe communication
|
||||
channel with the extension backend. This can be achieved similarly to how Kubernetes
|
||||
API Server does to [authenticate with aggregated servers][5] by using certificates.
|
||||
|
||||
## Non-Goals
|
||||
|
||||
It isn't in the scope of this proposal to specify commands in the Argo CD
|
||||
CLI. This proposal covers the reverse-proxy extension spec that will be
|
||||
used by Argo CD UI.
|
||||
|
||||
## Proposal
|
||||
|
||||
### Use cases
|
||||
|
||||
The following use cases should be implemented for the conclusion of this
|
||||
proposal:
|
||||
|
||||
#### [UC-1]: As an Argo CD admin, I want to configure a backend services so it can be used by my UI extension
|
||||
|
||||
Define a new section in the Argo CD configmap ([argocd-cm.yaml][4])
|
||||
allowing admins to register and configure new extensions. All enabled
|
||||
extensions backend will be available to be invoked by the Argo CD UI under
|
||||
the following API base path:
|
||||
|
||||
`<argocd-host>/api/v1/extensions/<extension-name>`
|
||||
|
||||
With the configuration below, the expected behavior is explained in the
|
||||
following examples:
|
||||
|
||||
```yaml
|
||||
extension.config: |
|
||||
extensions:
|
||||
- name: some-extension
|
||||
enabled: true
|
||||
backend:
|
||||
idleConnTimeout: 10s
|
||||
services:
|
||||
- url: http://extension-name.com:8080
|
||||
```
|
||||
|
||||
- **Example 1**:
|
||||
|
||||
Argo CD API server acts as a reverse-proxy forwarding http requests as
|
||||
follows:
|
||||
|
||||
```
|
||||
┌────────────┐
|
||||
│ Argo CD UI │
|
||||
└──────┬─────┘
|
||||
│
|
||||
│ GET http://argo.com/api/v1/extensions/some-extension
|
||||
│
|
||||
▼
|
||||
┌──────────────────┐
|
||||
│Argo CD API Server│
|
||||
└────────┬─────────┘
|
||||
│
|
||||
│ GET http://extension-name.com:8080
|
||||
│
|
||||
▼
|
||||
┌───────────────┐
|
||||
│Backend Service│
|
||||
└───────────────┘
|
||||
```
|
||||
|
||||
- **Example 2**:
|
||||
|
||||
If a backend provides an API under the `/apiv1/metrics` endpoint, Argo CD
|
||||
should be able to invoke it such as:
|
||||
|
||||
```
|
||||
┌────────────┐
|
||||
│ Argo CD UI │
|
||||
└──────┬─────┘
|
||||
│
|
||||
│ GET http://argo.com/api/v1/extensions/some-extension/apiv1/metrics/123
|
||||
│
|
||||
▼
|
||||
┌──────────────────┐
|
||||
│Argo CD API Server│
|
||||
└────────┬─────────┘
|
||||
│
|
||||
│ GET http://extension-name.com:8080/apiv1/metrics/123
|
||||
│
|
||||
▼
|
||||
┌───────────────┐
|
||||
│Backend Service│
|
||||
└───────────────┘
|
||||
```
|
||||
|
||||
- **Example 3**:
|
||||
|
||||
In this use-case we have one Argo CD instance connected with different
|
||||
clusters. There is a requirement defining that every extension instance
|
||||
needs to be deployed in each of the target clusters. To address this
|
||||
use-case there is a need to configure multiple backend URLs for the
|
||||
same extension (one for each cluster). For doing so, the following
|
||||
configuration should be possible:
|
||||
|
||||
```yaml
|
||||
extension.config: |
|
||||
extensions:
|
||||
- name: some-extension
|
||||
enabled: true
|
||||
backend:
|
||||
idleConnTimeout: 10s
|
||||
services:
|
||||
- url: http://extension-name.com:8080
|
||||
clusterName: kubernetes.local
|
||||
- url: https://extension-name.ppd.cluster.k8s.local:8080
|
||||
clusterName: admins@ppd.cluster.k8s.local
|
||||
```
|
||||
|
||||
Note that there is an URL configuration per cluster name. The cluster
|
||||
name is extracted from the Argo CD cluster secret and must match the
|
||||
field `data.name`. In this case the UI must send the header
|
||||
`Argocd-Application-Name` with the full qualified application name
|
||||
(`<namespace>/<application-name>`).
|
||||
|
||||
Example:
|
||||
|
||||
`Argocd-Application-Name: preprod/some-application`
|
||||
|
||||
With this information, API Server can check in which cluster it should
|
||||
get the backend URL from. This will be done by inspecting the
|
||||
Application destination configuration to find the proper cluster name.
|
||||
|
||||
The diagram below shows how Argo CD UI could send the request with
|
||||
the additional header to get the proxy forwarding it to the proper
|
||||
cluster:
|
||||
|
||||
```
|
||||
┌────────────┐
|
||||
│ Argo CD UI │
|
||||
└──────┬─────┘
|
||||
│
|
||||
│ GET http://argo.com/api/v1/extensions/some-extension
|
||||
│ HEADER: "Argocd-Application-Name: default/ppd-application"
|
||||
│
|
||||
▼
|
||||
┌──────────────────┐
|
||||
│Argo CD API Server│
|
||||
└────────┬─────────┘
|
||||
│
|
||||
│ GET https://extension-name.ppd.cluster.k8s.local:8080
|
||||
│
|
||||
▼
|
||||
┌───────────────┐
|
||||
│Backend Service│
|
||||
└───────────────┘
|
||||
```
|
||||
|
||||
##### Considerations
|
||||
|
||||
- The `idleConnTimeout` can be used to avoid accumulating too many
|
||||
goroutines waiting slow for extensions. In this case a proper timeout
|
||||
error (408) should be returned to the browser.
|
||||
- Scheme, http verb and request body are forwarded as it is
|
||||
received by the API server to the backend service.
|
||||
- Headers will be filtered and not forwarded as it is received in Argo CD
|
||||
API server. Sensitive headers will be removed (e.g. `Cookie`).
|
||||
- A new header is added in the forwared request (`X-Forwarded-Host`) to
|
||||
allow ssl redirection.
|
||||
- This proposal doesn't specify how backends should implement authz or
|
||||
authn. This topic could be discussed as a future enhancement to the
|
||||
proxy extension feature in Argo CD.
|
||||
|
||||
----
|
||||
|
||||
#### [UC-2]: As an Argo CD admin, I want to define extensions rbacs so access permissions can be enforced
|
||||
|
||||
Extend Argo CD rbac registering a new `ResourceType` for extensions in the
|
||||
[policy configuration][3]. The current policy permission configuration is
|
||||
defined as:
|
||||
|
||||
```
|
||||
p, <subject>, <resource>, <action>, <object>, <access>
|
||||
```
|
||||
|
||||
With a new resource type for extensions, admins will be able to configure
|
||||
access rights per extension per project.
|
||||
|
||||
* **Basic config suggestion:**
|
||||
|
||||
This is the basic suggestion where admins will be able to define permissions
|
||||
per project and per extension. In this case namespace specific permissions
|
||||
isn't covered.
|
||||
|
||||
The `object` field must contain the project name and the extension name in
|
||||
the format `<project>/<extension>`
|
||||
|
||||
- *Example 1*:
|
||||
|
||||
```
|
||||
p, role:allow-extensions, extensions, *, some-project/some-extension, allow
|
||||
```
|
||||
|
||||
In the example 1, a permission is configured to allowing the subject
|
||||
`role:allow-extensions`, for the resource type `extensions`, for all (`*`)
|
||||
actions, in the project `some-project`, for the extension name
|
||||
`some-extension`.
|
||||
|
||||
|
||||
- *Example 2*:
|
||||
|
||||
```
|
||||
p, role:allow-extensions, extensions, *, */some-extension, allow
|
||||
```
|
||||
|
||||
In the example 2, the permission is similar to the example 1 with the
|
||||
difference that the extension `some-extension` will be allowed for all
|
||||
projects.
|
||||
|
||||
- *Example 3*:
|
||||
|
||||
```
|
||||
p, role:allow-extensions, extensions, *, */*, allow
|
||||
```
|
||||
|
||||
In the example 3, the subject `role:allow-extensions` is allowed to
|
||||
execute extensions in all projects.
|
||||
|
||||
* **Advanced config suggestions:**
|
||||
|
||||
With advanced RBAC configuration suggestions, admins will be able to define
|
||||
permissions per project, per namespace and per extension.
|
||||
|
||||
There are 3 main approaches to achieve this type of RBAC configuration:
|
||||
|
||||
1. `<object>` has addional section for namespace:
|
||||
```
|
||||
p, dev, extensions, *, some-project/some-namespace/some-extension, allow
|
||||
```
|
||||
|
||||
2. `<action>` has 2 sections for extension name and namespace:
|
||||
```
|
||||
p, dev, extensions, some-extension/some-namespace, some-project/some-application, allow
|
||||
```
|
||||
|
||||
3. `<resource>` has 2 sections for extension type and extension name:
|
||||
```
|
||||
p, dev, extensions/some-extension, *, some-project/some-application, allow
|
||||
```
|
||||
|
||||
Reference: [Original discussion][6]
|
||||
|
||||
The final RBAC format must be defined and properly documented during implementation.
|
||||
|
||||
### Security Considerations
|
||||
|
||||
- Argo CD API Server must apply **authn** and **authz** for all incoming
|
||||
extensions requests
|
||||
- Argo CD must authorize requests coming from UI and check that the
|
||||
authenticated user has access to invoke a specific URL belonging to an
|
||||
extension
|
||||
|
||||
### Risks and Mitigations
|
||||
|
||||
### Upgrade / Downgrade
|
||||
|
||||
## Drawbacks
|
||||
|
||||
- Slight increase in Argo CD code base complexity.
|
||||
- Increased security risk.
|
||||
- Impact of extensions on overall Argo CD performance (mitigated by rate limiting + idle conn timeout).
|
||||
|
||||
## Open Questions
|
||||
|
||||
1. What are the possible actions that can be provided to extensions RBAC?
|
||||
A. This proposal does not define additional RBAC actions for extensions.
|
||||
Currently the only possible value is `*` which will allow admins to enable
|
||||
or disable certain extensions per project. If there is a new requirement
|
||||
to support additional actions for extensions to limit just specific HTTP
|
||||
verbs for example, an enhancement can be created to extend this
|
||||
functionality. If this requirement becomes necessary, it won't be a
|
||||
breaking change as it will be more restrictive.
|
||||
|
||||
[1]: https://argo-cd.readthedocs.io/en/stable/developer-guide/ui-extensions/
|
||||
[2]: https://github.com/argoproj-labs/argocd-extensions
|
||||
[3]: https://github.com/argoproj/argo-cd/blob/a23bfc3acaa464cbdeafdbbe66d05a121d5d1fb3/server/rbacpolicy/rbacpolicy.go#L17-L25
|
||||
[4]: https://argo-cd.readthedocs.io/en/stable/operator-manual/argocd-cm.yaml
|
||||
[5]: https://kubernetes.io/docs/tasks/extend-kubernetes/configure-aggregation-layer/#authentication-flow
|
||||
[6]: https://github.com/argoproj/argo-cd/pull/10435#discussion_r986941880
|
||||
@@ -1,5 +1,5 @@
|
||||
mkdocs==1.2.3
|
||||
mkdocs-material==7.1.7
|
||||
mkdocs-material==7.1.8
|
||||
markdown_include==0.6.0
|
||||
pygments==2.7.4
|
||||
jinja2==3.0.3
|
||||
|
||||
@@ -14,63 +14,50 @@ recent minor releases.
|
||||
| | Critical | High | Medium | Low |
|
||||
|---:|:--------:|:----:|:------:|:---:|
|
||||
| [go.mod](master/argocd-test.html) | 0 | 0 | 2 | 0 |
|
||||
| [ui/yarn.lock](master/argocd-test.html) | 0 | 0 | 3 | 0 |
|
||||
| [dex:v2.35.3-distroless](master/ghcr.io_dexidp_dex_v2.35.3-distroless.html) | 0 | 0 | 0 | 0 |
|
||||
| [ui/yarn.lock](master/argocd-test.html) | 0 | 0 | 0 | 0 |
|
||||
| [dex:v2.32.0-distroless](master/ghcr.io_dexidp_dex_v2.32.0-distroless.html) | 0 | 0 | 0 | 0 |
|
||||
| [haproxy:2.6.2-alpine](master/haproxy_2.6.2-alpine.html) | 0 | 0 | 0 | 0 |
|
||||
| [argocd:latest](master/quay.io_argoproj_argocd_latest.html) | 0 | 0 | 1 | 13 |
|
||||
| [redis:7.0.5-alpine](master/redis_7.0.5-alpine.html) | 0 | 0 | 0 | 0 |
|
||||
| [argocd:latest](master/quay.io_argoproj_argocd_latest.html) | 0 | 0 | 3 | 17 |
|
||||
| [redis:7.0.4-alpine](master/redis_7.0.4-alpine.html) | 0 | 0 | 0 | 0 |
|
||||
| [install.yaml](master/argocd-iac-install.html) | - | - | - | - |
|
||||
| [namespace-install.yaml](master/argocd-iac-namespace-install.html) | - | - | - | - |
|
||||
|
||||
### v2.5.0-rc3
|
||||
### v2.4.11
|
||||
|
||||
| | Critical | High | Medium | Low |
|
||||
|---:|:--------:|:----:|:------:|:---:|
|
||||
| [go.mod](v2.5.0-rc3/argocd-test.html) | 0 | 0 | 2 | 0 |
|
||||
| [ui/yarn.lock](v2.5.0-rc3/argocd-test.html) | 0 | 0 | 3 | 0 |
|
||||
| [dex:v2.35.3-distroless](v2.5.0-rc3/ghcr.io_dexidp_dex_v2.35.3-distroless.html) | 0 | 0 | 0 | 0 |
|
||||
| [haproxy:2.6.2-alpine](v2.5.0-rc3/haproxy_2.6.2-alpine.html) | 0 | 0 | 0 | 0 |
|
||||
| [argocd:v2.5.0-rc3](v2.5.0-rc3/quay.io_argoproj_argocd_v2.5.0-rc3.html) | 0 | 1 | 8 | 13 |
|
||||
| [redis:7.0.5-alpine](v2.5.0-rc3/redis_7.0.5-alpine.html) | 0 | 0 | 0 | 0 |
|
||||
| [install.yaml](v2.5.0-rc3/argocd-iac-install.html) | - | - | - | - |
|
||||
| [namespace-install.yaml](v2.5.0-rc3/argocd-iac-namespace-install.html) | - | - | - | - |
|
||||
| [go.mod](v2.4.11/argocd-test.html) | 0 | 0 | 3 | 0 |
|
||||
| [ui/yarn.lock](v2.4.11/argocd-test.html) | 0 | 0 | 0 | 0 |
|
||||
| [dex:v2.32.0](v2.4.11/ghcr.io_dexidp_dex_v2.32.0.html) | 1 | 1 | 1 | 0 |
|
||||
| [haproxy:2.0.29-alpine](v2.4.11/haproxy_2.0.29-alpine.html) | 1 | 0 | 0 | 0 |
|
||||
| [argocd:v2.4.11](v2.4.11/quay.io_argoproj_argocd_v2.4.11.html) | 0 | 0 | 3 | 18 |
|
||||
| [redis:7.0.4-alpine](v2.4.11/redis_7.0.4-alpine.html) | 0 | 0 | 0 | 0 |
|
||||
| [install.yaml](v2.4.11/argocd-iac-install.html) | - | - | - | - |
|
||||
| [namespace-install.yaml](v2.4.11/argocd-iac-namespace-install.html) | - | - | - | - |
|
||||
|
||||
### v2.4.15
|
||||
### v2.3.7
|
||||
|
||||
| | Critical | High | Medium | Low |
|
||||
|---:|:--------:|:----:|:------:|:---:|
|
||||
| [go.mod](v2.4.15/argocd-test.html) | 0 | 0 | 3 | 0 |
|
||||
| [ui/yarn.lock](v2.4.15/argocd-test.html) | 0 | 0 | 3 | 0 |
|
||||
| [dex:v2.35.3-distroless](v2.4.15/ghcr.io_dexidp_dex_v2.35.3-distroless.html) | 0 | 0 | 0 | 0 |
|
||||
| [haproxy:2.0.29-alpine](v2.4.15/haproxy_2.0.29-alpine.html) | 0 | 0 | 0 | 0 |
|
||||
| [argocd:v2.4.15](v2.4.15/quay.io_argoproj_argocd_v2.4.15.html) | 0 | 1 | 7 | 13 |
|
||||
| [redis:7.0.4-alpine](v2.4.15/redis_7.0.4-alpine.html) | 0 | 0 | 0 | 0 |
|
||||
| [install.yaml](v2.4.15/argocd-iac-install.html) | - | - | - | - |
|
||||
| [namespace-install.yaml](v2.4.15/argocd-iac-namespace-install.html) | - | - | - | - |
|
||||
| [go.mod](v2.3.7/argocd-test.html) | 0 | 0 | 3 | 0 |
|
||||
| [ui/yarn.lock](v2.3.7/argocd-test.html) | 0 | 1 | 2 | 0 |
|
||||
| [dex:v2.32.0](v2.3.7/ghcr.io_dexidp_dex_v2.32.0.html) | 1 | 1 | 1 | 0 |
|
||||
| [haproxy:2.0.29-alpine](v2.3.7/haproxy_2.0.29-alpine.html) | 1 | 0 | 0 | 0 |
|
||||
| [argocd-applicationset:v0.4.1](v2.3.7/quay.io_argoproj_argocd-applicationset_v0.4.1.html) | 0 | 4 | 38 | 29 |
|
||||
| [argocd:v2.3.7](v2.3.7/quay.io_argoproj_argocd_v2.3.7.html) | 0 | 0 | 4 | 18 |
|
||||
| [redis:6.2.7-alpine](v2.3.7/redis_6.2.7-alpine.html) | 1 | 0 | 0 | 0 |
|
||||
| [install.yaml](v2.3.7/argocd-iac-install.html) | - | - | - | - |
|
||||
| [namespace-install.yaml](v2.3.7/argocd-iac-namespace-install.html) | - | - | - | - |
|
||||
|
||||
### v2.3.10
|
||||
### v2.2.12
|
||||
|
||||
| | Critical | High | Medium | Low |
|
||||
|---:|:--------:|:----:|:------:|:---:|
|
||||
| [go.mod](v2.3.10/argocd-test.html) | 0 | 0 | 3 | 0 |
|
||||
| [ui/yarn.lock](v2.3.10/argocd-test.html) | 0 | 1 | 5 | 0 |
|
||||
| [dex:v2.35.3-distroless](v2.3.10/ghcr.io_dexidp_dex_v2.35.3-distroless.html) | 0 | 0 | 0 | 0 |
|
||||
| [haproxy:2.0.29-alpine](v2.3.10/haproxy_2.0.29-alpine.html) | 0 | 0 | 0 | 0 |
|
||||
| [argocd-applicationset:v0.4.1](v2.3.10/quay.io_argoproj_argocd-applicationset_v0.4.1.html) | 0 | 4 | 38 | 29 |
|
||||
| [argocd:v2.3.10](v2.3.10/quay.io_argoproj_argocd_v2.3.10.html) | 0 | 1 | 7 | 13 |
|
||||
| [redis:6.2.7-alpine](v2.3.10/redis_6.2.7-alpine.html) | 0 | 0 | 0 | 0 |
|
||||
| [install.yaml](v2.3.10/argocd-iac-install.html) | - | - | - | - |
|
||||
| [namespace-install.yaml](v2.3.10/argocd-iac-namespace-install.html) | - | - | - | - |
|
||||
|
||||
### v2.2.15
|
||||
|
||||
| | Critical | High | Medium | Low |
|
||||
|---:|:--------:|:----:|:------:|:---:|
|
||||
| [go.mod](v2.2.15/argocd-test.html) | 0 | 0 | 4 | 0 |
|
||||
| [ui/yarn.lock](v2.2.15/argocd-test.html) | 0 | 1 | 5 | 0 |
|
||||
| [dex:v2.35.3-distroless](v2.2.15/ghcr.io_dexidp_dex_v2.35.3-distroless.html) | 0 | 0 | 0 | 0 |
|
||||
| [haproxy:2.0.29-alpine](v2.2.15/haproxy_2.0.29-alpine.html) | 0 | 0 | 0 | 0 |
|
||||
| [argocd:v2.2.15](v2.2.15/quay.io_argoproj_argocd_v2.2.15.html) | 0 | 1 | 7 | 23 |
|
||||
| [redis:6.2.7-alpine](v2.2.15/redis_6.2.7-alpine.html) | 0 | 0 | 0 | 0 |
|
||||
| [install.yaml](v2.2.15/argocd-iac-install.html) | - | - | - | - |
|
||||
| [namespace-install.yaml](v2.2.15/argocd-iac-namespace-install.html) | - | - | - | - |
|
||||
| [go.mod](v2.2.12/argocd-test.html) | 0 | 0 | 3 | 0 |
|
||||
| [ui/yarn.lock](v2.2.12/argocd-test.html) | 0 | 1 | 2 | 0 |
|
||||
| [dex:v2.32.0](v2.2.12/ghcr.io_dexidp_dex_v2.32.0.html) | 1 | 1 | 1 | 0 |
|
||||
| [haproxy:2.0.29-alpine](v2.2.12/haproxy_2.0.29-alpine.html) | 1 | 0 | 0 | 0 |
|
||||
| [argocd:v2.2.12](v2.2.12/quay.io_argoproj_argocd_v2.2.12.html) | 0 | 0 | 7 | 28 |
|
||||
| [redis:6.2.7-alpine](v2.2.12/redis_6.2.7-alpine.html) | 1 | 0 | 0 | 0 |
|
||||
| [install.yaml](v2.2.12/argocd-iac-install.html) | - | - | - | - |
|
||||
| [namespace-install.yaml](v2.2.12/argocd-iac-namespace-install.html) | - | - | - | - |
|
||||
|
||||
@@ -456,12 +456,12 @@
|
||||
<div class="header-wrap">
|
||||
<h1 class="project__header__title">Snyk test report</h1>
|
||||
|
||||
<p class="timestamp">October 30th 2022, 12:21:01 am</p>
|
||||
<p class="timestamp">September 7th 2022, 7:35:15 pm</p>
|
||||
</div>
|
||||
<div class="source-panel">
|
||||
<span>Scanned the following path:</span>
|
||||
<ul>
|
||||
<li class="paths">/argo-cd/manifests/install.yaml (Kubernetes)</li>
|
||||
<li class="paths">/private/argo-cd/manifests/install.yaml (Kubernetes)</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -476,7 +476,7 @@
|
||||
<table class="metatable">
|
||||
<tbody>
|
||||
<tr class="meta-row"><th class="meta-row-label">Project</th> <td class="meta-row-value">manifests/install.yaml</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Path</th> <td class="meta-row-value">/argo-cd/manifests/install.yaml</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Path</th> <td class="meta-row-value">/private/argo-cd/manifests/install.yaml</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Project Type</th> <td class="meta-row-value">Kubernetes</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -508,6 +508,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 9299
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -553,6 +556,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 9338
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -598,51 +604,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<h2>Impact</h2>
|
||||
<p>Using this role grants dangerous permissions</p>
|
||||
|
||||
<h2>Remediation</h2>
|
||||
<p>Consider removing this permissions</p>
|
||||
|
||||
|
||||
<hr/>
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/security-rules/SNYK-CC-K8S-47">More about this issue</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Role with dangerous permissions</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Public ID: <a href="https://snyk.io/security-rules/SNYK-CC-K8S-47">SNYK-CC-K8S-47</a>
|
||||
Line number: 9404
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
[DocId: 13]
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
role
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
rules[3]
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
resources
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -688,6 +652,57 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 9423
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<h2>Impact</h2>
|
||||
<p>Using this role grants dangerous permissions</p>
|
||||
|
||||
<h2>Remediation</h2>
|
||||
<p>Consider removing this permissions</p>
|
||||
|
||||
|
||||
<hr/>
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/security-rules/SNYK-CC-K8S-47">More about this issue</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Role with dangerous permissions</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Public ID: <a href="https://snyk.io/security-rules/SNYK-CC-K8S-47">SNYK-CC-K8S-47</a>
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
[DocId: 13]
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
role
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
rules[3]
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
resources
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 9423
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -733,6 +748,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 9464
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -783,7 +801,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10481
|
||||
Line number: 10412
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -841,7 +859,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 9950
|
||||
Line number: 9942
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -899,7 +917,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10117
|
||||
Line number: 10055
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -957,7 +975,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10083
|
||||
Line number: 10021
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1015,7 +1033,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10173
|
||||
Line number: 10111
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1073,7 +1091,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10247
|
||||
Line number: 10185
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1131,7 +1149,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10481
|
||||
Line number: 10412
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1189,7 +1207,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10303
|
||||
Line number: 10241
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1247,7 +1265,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10566
|
||||
Line number: 10497
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1305,7 +1323,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10864
|
||||
Line number: 10794
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1357,7 +1375,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10097
|
||||
Line number: 10035
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1413,7 +1431,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10257
|
||||
Line number: 10195
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1465,7 +1483,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 9950
|
||||
Line number: 9942
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1517,7 +1535,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10083
|
||||
Line number: 10021
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1569,7 +1587,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10117
|
||||
Line number: 10055
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1621,7 +1639,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10247
|
||||
Line number: 10185
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1673,7 +1691,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10481
|
||||
Line number: 10412
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1731,7 +1749,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 9950
|
||||
Line number: 9942
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1789,7 +1807,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10083
|
||||
Line number: 10021
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1847,7 +1865,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10117
|
||||
Line number: 10055
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1905,7 +1923,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10173
|
||||
Line number: 10111
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1963,7 +1981,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10247
|
||||
Line number: 10185
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -2021,7 +2039,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10481
|
||||
Line number: 10412
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -2079,7 +2097,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10303
|
||||
Line number: 10241
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -2137,7 +2155,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10566
|
||||
Line number: 10497
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -2195,7 +2213,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10864
|
||||
Line number: 10794
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
@@ -456,12 +456,12 @@
|
||||
<div class="header-wrap">
|
||||
<h1 class="project__header__title">Snyk test report</h1>
|
||||
|
||||
<p class="timestamp">October 30th 2022, 12:21:12 am</p>
|
||||
<p class="timestamp">September 7th 2022, 7:35:27 pm</p>
|
||||
</div>
|
||||
<div class="source-panel">
|
||||
<span>Scanned the following path:</span>
|
||||
<ul>
|
||||
<li class="paths">/argo-cd/manifests/namespace-install.yaml (Kubernetes)</li>
|
||||
<li class="paths">/private/argo-cd/manifests/namespace-install.yaml (Kubernetes)</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -476,7 +476,7 @@
|
||||
<table class="metatable">
|
||||
<tbody>
|
||||
<tr class="meta-row"><th class="meta-row-label">Project</th> <td class="meta-row-value">manifests/namespace-install.yaml</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Path</th> <td class="meta-row-value">/argo-cd/manifests/namespace-install.yaml</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Path</th> <td class="meta-row-value">/private/argo-cd/manifests/namespace-install.yaml</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Project Type</th> <td class="meta-row-value">Kubernetes</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -508,6 +508,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 65
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -553,6 +556,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 104
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -598,51 +604,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<h2>Impact</h2>
|
||||
<p>Using this role grants dangerous permissions</p>
|
||||
|
||||
<h2>Remediation</h2>
|
||||
<p>Consider removing this permissions</p>
|
||||
|
||||
|
||||
<hr/>
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/security-rules/SNYK-CC-K8S-47">More about this issue</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Role with dangerous permissions</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Public ID: <a href="https://snyk.io/security-rules/SNYK-CC-K8S-47">SNYK-CC-K8S-47</a>
|
||||
Line number: 170
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
[DocId: 10]
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
role
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
rules[3]
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
resources
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -688,6 +652,57 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 189
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<h2>Impact</h2>
|
||||
<p>Using this role grants dangerous permissions</p>
|
||||
|
||||
<h2>Remediation</h2>
|
||||
<p>Consider removing this permissions</p>
|
||||
|
||||
|
||||
<hr/>
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/security-rules/SNYK-CC-K8S-47">More about this issue</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Role with dangerous permissions</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Public ID: <a href="https://snyk.io/security-rules/SNYK-CC-K8S-47">SNYK-CC-K8S-47</a>
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
[DocId: 10]
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
role
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
rules[3]
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
resources
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 189
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -733,6 +748,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 230
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -783,7 +801,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 1147
|
||||
Line number: 1085
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -841,7 +859,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 616
|
||||
Line number: 615
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -899,7 +917,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 783
|
||||
Line number: 728
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -957,7 +975,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 749
|
||||
Line number: 694
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1015,7 +1033,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 839
|
||||
Line number: 784
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1073,7 +1091,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 913
|
||||
Line number: 858
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1131,7 +1149,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 1147
|
||||
Line number: 1085
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1189,7 +1207,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 969
|
||||
Line number: 914
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1247,7 +1265,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 1232
|
||||
Line number: 1170
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1305,7 +1323,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 1530
|
||||
Line number: 1467
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1357,7 +1375,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 763
|
||||
Line number: 708
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1413,7 +1431,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 923
|
||||
Line number: 868
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1465,7 +1483,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 616
|
||||
Line number: 615
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1517,7 +1535,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 749
|
||||
Line number: 694
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1569,7 +1587,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 783
|
||||
Line number: 728
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1621,7 +1639,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 913
|
||||
Line number: 858
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1673,7 +1691,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 1147
|
||||
Line number: 1085
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1731,7 +1749,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 616
|
||||
Line number: 615
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1789,7 +1807,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 749
|
||||
Line number: 694
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1847,7 +1865,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 783
|
||||
Line number: 728
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1905,7 +1923,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 839
|
||||
Line number: 784
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1963,7 +1981,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 913
|
||||
Line number: 858
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -2021,7 +2039,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 1147
|
||||
Line number: 1085
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -2079,7 +2097,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 969
|
||||
Line number: 914
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -2137,7 +2155,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 1232
|
||||
Line number: 1170
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -2195,7 +2213,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 1530
|
||||
Line number: 1467
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>Snyk test report</title>
|
||||
<meta name="description" content="5 known vulnerabilities found in 9 vulnerable dependency paths.">
|
||||
<meta name="description" content="2 known vulnerabilities found in 6 vulnerable dependency paths.">
|
||||
<base target="_blank">
|
||||
<link rel="icon" type="image/png" href="https://res.cloudinary.com/snyk/image/upload/v1468845142/favicon/favicon.png"
|
||||
sizes="194x194">
|
||||
@@ -456,19 +456,19 @@
|
||||
<div class="header-wrap">
|
||||
<h1 class="project__header__title">Snyk test report</h1>
|
||||
|
||||
<p class="timestamp">October 30th 2022, 12:19:12 am</p>
|
||||
<p class="timestamp">September 7th 2022, 7:33:58 pm</p>
|
||||
</div>
|
||||
<div class="source-panel">
|
||||
<span>Scanned the following paths:</span>
|
||||
<ul>
|
||||
<li class="paths">/argo-cd/argoproj/argo-cd/v2 (gomodules)</li><li class="paths">/argo-cd (yarn)</li>
|
||||
<li class="paths">/private/argo-cd/argoproj/argo-cd/v2 (gomodules)</li><li class="paths">/private/argo-cd (yarn)</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="meta-counts">
|
||||
<div class="meta-count"><span>5</span> <span>known vulnerabilities</span></div>
|
||||
<div class="meta-count"><span>9 vulnerable dependency paths</span></div>
|
||||
<div class="meta-count"><span>1721</span> <span>dependencies</span></div>
|
||||
<div class="meta-count"><span>2</span> <span>known vulnerabilities</span></div>
|
||||
<div class="meta-count"><span>6 vulnerable dependency paths</span></div>
|
||||
<div class="meta-count"><span>1717</span> <span>dependencies</span></div>
|
||||
</div><!-- .meta-counts -->
|
||||
</div><!-- .layout-container--short -->
|
||||
</header><!-- .project__header -->
|
||||
@@ -476,312 +476,6 @@
|
||||
|
||||
<div class="layout-container" style="padding-top: 35px;">
|
||||
<div class="cards--vuln filter--patch filter--ignore">
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Server-side Request Forgery (SSRF)</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Package Manager: npm
|
||||
</li>
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
parse-url
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
|
||||
argo-cd-ui@1.0.0, git-url-parse@11.6.0 and others
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
<h3 class="card__section__title">Detailed paths</h3>
|
||||
|
||||
<ul class="card__meta__paths">
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
argo-cd-ui@1.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
git-url-parse@11.6.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
git-up@4.0.5
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
parse-url@6.0.5
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="overview">Overview</h2>
|
||||
<p><a href="https://www.npmjs.org/package/parse-url">parse-url</a> is an An advanced url parser supporting git urls too.</p>
|
||||
<p>Affected versions of this package are vulnerable to Server-side Request Forgery (SSRF) due to improper detection of protocol, resource, and pathname fields. Exploiting this vulnerability results in bypassing protocol verification.</p>
|
||||
<h2 id="poc">PoC:</h2>
|
||||
<pre><code class="language-js">import parseUrl from "parse-url";
|
||||
import fetch from 'node-fetch';
|
||||
var parsed=parseUrl("http://nnnn@localhost:808:/?id=xss")
|
||||
if(parsed.resource=="localhost"){
|
||||
console.log("internal network access is blocked")
|
||||
}
|
||||
else{
|
||||
const response = await fetch('http://'+parsed.resource+parsed.pathname);
|
||||
console.log(response)
|
||||
}
|
||||
</code></pre>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>parse-url</code> to version 8.1.0 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/IonicaBizau/parse-url/commit/881ecb46e39286b0c2b3c32fe61dca9377176884">GitHub Commit</a></li>
|
||||
<li><a href="https://github.com/IonicaBizau/parse-url/pull/55">GitHub PR</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-JS-PARSEURL-3023021">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Improper Input Validation</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Package Manager: npm
|
||||
</li>
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
parse-url
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
|
||||
argo-cd-ui@1.0.0, git-url-parse@11.6.0 and others
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
<h3 class="card__section__title">Detailed paths</h3>
|
||||
|
||||
<ul class="card__meta__paths">
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
argo-cd-ui@1.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
git-url-parse@11.6.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
git-up@4.0.5
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
parse-url@6.0.5
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="overview">Overview</h2>
|
||||
<p><a href="https://www.npmjs.org/package/parse-url">parse-url</a> is an An advanced url parser supporting git urls too.</p>
|
||||
<p>Affected versions of this package are vulnerable to Improper Input Validation due to incorrect parsing of URLs. This allows the attacker to craft a malformed URL which can lead to a phishing attack.</p>
|
||||
<pre><code class="language-js">
|
||||
const parseUrl = require("parse-url");
|
||||
const Url = require("url");
|
||||
|
||||
const express = require('express');
|
||||
const app = express();
|
||||
|
||||
var url = "https://www.google.com:x@fakesite.com:x";
|
||||
parsed = parseUrl(url);
|
||||
console.log("[*]`parse-url` output: ")
|
||||
console.log(parsed);
|
||||
|
||||
parsed2 = Url.parse(url);
|
||||
console.log("[*]`url` output: ")
|
||||
console.log(parsed2)
|
||||
|
||||
app.get('/', (req, res) => {
|
||||
if (parsed.host == "www.google.com") {
|
||||
res.send("<a href=\'" + parsed2.href + "\'>CLICK ME!</a>")
|
||||
}
|
||||
})
|
||||
|
||||
app.listen(8888,"0.0.0.0");
|
||||
</code></pre>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>parse-url</code> to version 8.1.0 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/IonicaBizau/parse-url/commit/881ecb46e39286b0c2b3c32fe61dca9377176884">GitHub Commit</a></li>
|
||||
<li><a href="https://github.com/IonicaBizau/parse-url/commit/9500430a3b9973bb1b5b2b9b319af2685ad272b3">GitHub Commit</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-JS-PARSEURL-3024398">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Regular Expression Denial of Service (ReDoS)</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Package Manager: npm
|
||||
</li>
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
minimatch
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
|
||||
argo-cd-ui@1.0.0, redoc@2.0.0-rc.64 and others
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
<h3 class="card__section__title">Detailed paths</h3>
|
||||
|
||||
<ul class="card__meta__paths">
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
argo-cd-ui@1.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
redoc@2.0.0-rc.64
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
@redocly/openapi-core@1.0.0-beta.82
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
minimatch@3.0.4
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="overview">Overview</h2>
|
||||
<p><a href="https://www.npmjs.com/package/minimatch">minimatch</a> is a minimal matching utility.</p>
|
||||
<p>Affected versions of this package are vulnerable to Regular Expression Denial of Service (ReDoS) via the <code>braceExpand</code> function in <code>minimatch.js</code>.</p>
|
||||
<h2 id="details">Details</h2>
|
||||
<p>Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its original and legitimate users. There are many types of DoS attacks, ranging from trying to clog the network pipes to the system by generating a large volume of traffic from many machines (a Distributed Denial of Service - DDoS - attack) to sending crafted requests that cause a system to crash or take a disproportional amount of time to process.</p>
|
||||
<p>The Regular expression Denial of Service (ReDoS) is a type of Denial of Service attack. Regular expressions are incredibly powerful, but they aren't very intuitive and can ultimately end up making it easy for attackers to take your site down.</p>
|
||||
<p>Let’s take the following regular expression as an example:</p>
|
||||
<pre><code class="language-js">regex = /A(B|C+)+D/
|
||||
</code></pre>
|
||||
<p>This regular expression accomplishes the following:</p>
|
||||
<ul>
|
||||
<li><code>A</code> The string must start with the letter 'A'</li>
|
||||
<li><code>(B|C+)+</code> The string must then follow the letter A with either the letter 'B' or some number of occurrences of the letter 'C' (the <code>+</code> matches one or more times). The <code>+</code> at the end of this section states that we can look for one or more matches of this section.</li>
|
||||
<li><code>D</code> Finally, we ensure this section of the string ends with a 'D'</li>
|
||||
</ul>
|
||||
<p>The expression would match inputs such as <code>ABBD</code>, <code>ABCCCCD</code>, <code>ABCBCCCD</code> and <code>ACCCCCD</code></p>
|
||||
<p>It most cases, it doesn't take very long for a regex engine to find a match:</p>
|
||||
<pre><code class="language-bash">$ time node -e '/A(B|C+)+D/.test("ACCCCCCCCCCCCCCCCCCCCCCCCCCCCD")'
|
||||
0.04s user 0.01s system 95% cpu 0.052 total
|
||||
|
||||
$ time node -e '/A(B|C+)+D/.test("ACCCCCCCCCCCCCCCCCCCCCCCCCCCCX")'
|
||||
1.79s user 0.02s system 99% cpu 1.812 total
|
||||
</code></pre>
|
||||
<p>The entire process of testing it against a 30 characters long string takes around ~52ms. But when given an invalid string, it takes nearly two seconds to complete the test, over ten times as long as it took to test a valid string. The dramatic difference is due to the way regular expressions get evaluated.</p>
|
||||
<p>Most Regex engines will work very similarly (with minor differences). The engine will match the first possible way to accept the current character and proceed to the next one. If it then fails to match the next one, it will backtrack and see if there was another way to digest the previous character. If it goes too far down the rabbit hole only to find out the string doesn’t match in the end, and if many characters have multiple valid regex paths, the number of backtracking steps can become very large, resulting in what is known as <em>catastrophic backtracking</em>.</p>
|
||||
<p>Let's look at how our expression runs into this problem, using a shorter string: "ACCCX". While it seems fairly straightforward, there are still four different ways that the engine could match those three C's:</p>
|
||||
<ol>
|
||||
<li>CCC</li>
|
||||
<li>CC+C</li>
|
||||
<li>C+CC</li>
|
||||
<li>C+C+C.</li>
|
||||
</ol>
|
||||
<p>The engine has to try each of those combinations to see if any of them potentially match against the expression. When you combine that with the other steps the engine must take, we can use <a href="https://regex101.com/debugger">RegEx 101 debugger</a> to see the engine has to take a total of 38 steps before it can determine the string doesn't match.</p>
|
||||
<p>From there, the number of steps the engine must use to validate a string just continues to grow.</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>String</th>
|
||||
<th align="right">Number of C's</th>
|
||||
<th align="right">Number of steps</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody><tr>
|
||||
<td>ACCCX</td>
|
||||
<td align="right">3</td>
|
||||
<td align="right">38</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ACCCCX</td>
|
||||
<td align="right">4</td>
|
||||
<td align="right">71</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ACCCCCX</td>
|
||||
<td align="right">5</td>
|
||||
<td align="right">136</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ACCCCCCCCCCCCCCX</td>
|
||||
<td align="right">14</td>
|
||||
<td align="right">65,553</td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
<p>By the time the string includes 14 C's, the engine has to take over 65,000 steps just to see if the string is valid. These extreme situations can cause them to work very slowly (exponentially related to input size, as shown above), allowing an attacker to exploit this and can cause the service to excessively consume CPU, resulting in a Denial of Service.</p>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>minimatch</code> to version 3.0.5 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/isaacs/minimatch/commit/a8763f4388e51956be62dc6025cec1126beeb5e6">GitHub Commit</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-JS-MINIMATCH-3050818">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Improper Input Validation</h2>
|
||||
<div class="card__section">
|
||||
|
||||
@@ -456,12 +456,12 @@
|
||||
<div class="header-wrap">
|
||||
<h1 class="project__header__title">Snyk test report</h1>
|
||||
|
||||
<p class="timestamp">October 30th 2022, 12:19:27 am</p>
|
||||
<p class="timestamp">September 7th 2022, 7:34:05 pm</p>
|
||||
</div>
|
||||
<div class="source-panel">
|
||||
<span>Scanned the following path:</span>
|
||||
<ul>
|
||||
<li class="paths">ghcr.io/dexidp/dex:v2.35.3-distroless/dexidp/dex (deb)</li>
|
||||
<li class="paths">ghcr.io/dexidp/dex:v2.32.0-distroless/dexidp/dex (deb)</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -477,7 +477,7 @@
|
||||
<table class="metatable">
|
||||
<tbody>
|
||||
<tr class="meta-row"><th class="meta-row-label">Project</th> <td class="meta-row-value">docker-image|ghcr.io/dexidp/dex</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Path</th> <td class="meta-row-value">ghcr.io/dexidp/dex:v2.35.3-distroless/dexidp/dex</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Path</th> <td class="meta-row-value">ghcr.io/dexidp/dex:v2.32.0-distroless/dexidp/dex</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Package Manager</th> <td class="meta-row-value">deb</td></tr>
|
||||
|
||||
</tbody>
|
||||
@@ -456,7 +456,7 @@
|
||||
<div class="header-wrap">
|
||||
<h1 class="project__header__title">Snyk test report</h1>
|
||||
|
||||
<p class="timestamp">October 30th 2022, 12:19:33 am</p>
|
||||
<p class="timestamp">September 7th 2022, 7:34:13 pm</p>
|
||||
</div>
|
||||
<div class="source-panel">
|
||||
<span>Scanned the following path:</span>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -456,7 +456,7 @@
|
||||
<div class="header-wrap">
|
||||
<h1 class="project__header__title">Snyk test report</h1>
|
||||
|
||||
<p class="timestamp">October 30th 2022, 12:24:06 am</p>
|
||||
<p class="timestamp">September 7th 2022, 7:34:30 pm</p>
|
||||
</div>
|
||||
<div class="source-panel">
|
||||
<span>Scanned the following path:</span>
|
||||
@@ -456,12 +456,12 @@
|
||||
<div class="header-wrap">
|
||||
<h1 class="project__header__title">Snyk test report</h1>
|
||||
|
||||
<p class="timestamp">October 30th 2022, 12:29:41 am</p>
|
||||
<p class="timestamp">September 7th 2022, 7:39:56 pm</p>
|
||||
</div>
|
||||
<div class="source-panel">
|
||||
<span>Scanned the following path:</span>
|
||||
<ul>
|
||||
<li class="paths">/argo-cd/manifests/install.yaml (Kubernetes)</li>
|
||||
<li class="paths">/private/argo-cd/manifests/install.yaml (Kubernetes)</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -476,7 +476,7 @@
|
||||
<table class="metatable">
|
||||
<tbody>
|
||||
<tr class="meta-row"><th class="meta-row-label">Project</th> <td class="meta-row-value">manifests/install.yaml</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Path</th> <td class="meta-row-value">/argo-cd/manifests/install.yaml</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Path</th> <td class="meta-row-value">/private/argo-cd/manifests/install.yaml</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Project Type</th> <td class="meta-row-value">Kubernetes</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -1020,6 +1020,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 2594
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -1065,6 +1068,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 2633
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -1110,6 +1116,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 2652
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -456,12 +456,12 @@
|
||||
<div class="header-wrap">
|
||||
<h1 class="project__header__title">Snyk test report</h1>
|
||||
|
||||
<p class="timestamp">October 30th 2022, 12:29:48 am</p>
|
||||
<p class="timestamp">September 7th 2022, 7:40:03 pm</p>
|
||||
</div>
|
||||
<div class="source-panel">
|
||||
<span>Scanned the following path:</span>
|
||||
<ul>
|
||||
<li class="paths">/argo-cd/manifests/namespace-install.yaml (Kubernetes)</li>
|
||||
<li class="paths">/private/argo-cd/manifests/namespace-install.yaml (Kubernetes)</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -476,7 +476,7 @@
|
||||
<table class="metatable">
|
||||
<tbody>
|
||||
<tr class="meta-row"><th class="meta-row-label">Project</th> <td class="meta-row-value">manifests/namespace-install.yaml</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Path</th> <td class="meta-row-value">/argo-cd/manifests/namespace-install.yaml</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Path</th> <td class="meta-row-value">/private/argo-cd/manifests/namespace-install.yaml</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Project Type</th> <td class="meta-row-value">Kubernetes</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -1020,6 +1020,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 38
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -1065,6 +1068,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 77
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -1110,6 +1116,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 96
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -7,7 +7,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>Snyk test report</title>
|
||||
<meta name="description" content="10 known vulnerabilities found in 15 vulnerable dependency paths.">
|
||||
<meta name="description" content="6 known vulnerabilities found in 11 vulnerable dependency paths.">
|
||||
<base target="_blank">
|
||||
<link rel="icon" type="image/png" href="https://res.cloudinary.com/snyk/image/upload/v1468845142/favicon/favicon.png"
|
||||
sizes="194x194">
|
||||
@@ -456,18 +456,18 @@
|
||||
<div class="header-wrap">
|
||||
<h1 class="project__header__title">Snyk test report</h1>
|
||||
|
||||
<p class="timestamp">October 30th 2022, 12:28:26 am</p>
|
||||
<p class="timestamp">September 7th 2022, 7:39:03 pm</p>
|
||||
</div>
|
||||
<div class="source-panel">
|
||||
<span>Scanned the following paths:</span>
|
||||
<ul>
|
||||
<li class="paths">/argo-cd/argoproj/argo-cd/v2 (gomodules)</li><li class="paths">/argo-cd (yarn)</li>
|
||||
<li class="paths">/private/argo-cd/argoproj/argo-cd/v2 (gomodules)</li><li class="paths">/private/argo-cd (yarn)</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="meta-counts">
|
||||
<div class="meta-count"><span>10</span> <span>known vulnerabilities</span></div>
|
||||
<div class="meta-count"><span>15 vulnerable dependency paths</span></div>
|
||||
<div class="meta-count"><span>6</span> <span>known vulnerabilities</span></div>
|
||||
<div class="meta-count"><span>11 vulnerable dependency paths</span></div>
|
||||
<div class="meta-count"><span>1367</span> <span>dependencies</span></div>
|
||||
</div><!-- .meta-counts -->
|
||||
</div><!-- .layout-container--short -->
|
||||
@@ -621,182 +621,6 @@
|
||||
<p><a href="https://snyk.io/vuln/SNYK-JS-MOMENT-2944238">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Server-side Request Forgery (SSRF)</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Package Manager: npm
|
||||
</li>
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
parse-url
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
|
||||
argo-cd-ui@1.0.0, git-url-parse@11.1.2 and others
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
<h3 class="card__section__title">Detailed paths</h3>
|
||||
|
||||
<ul class="card__meta__paths">
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
argo-cd-ui@1.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
git-url-parse@11.1.2
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
git-up@4.0.5
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
parse-url@6.0.5
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="overview">Overview</h2>
|
||||
<p><a href="https://www.npmjs.org/package/parse-url">parse-url</a> is an An advanced url parser supporting git urls too.</p>
|
||||
<p>Affected versions of this package are vulnerable to Server-side Request Forgery (SSRF) due to improper detection of protocol, resource, and pathname fields. Exploiting this vulnerability results in bypassing protocol verification.</p>
|
||||
<h2 id="poc">PoC:</h2>
|
||||
<pre><code class="language-js">import parseUrl from "parse-url";
|
||||
import fetch from 'node-fetch';
|
||||
var parsed=parseUrl("http://nnnn@localhost:808:/?id=xss")
|
||||
if(parsed.resource=="localhost"){
|
||||
console.log("internal network access is blocked")
|
||||
}
|
||||
else{
|
||||
const response = await fetch('http://'+parsed.resource+parsed.pathname);
|
||||
console.log(response)
|
||||
}
|
||||
</code></pre>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>parse-url</code> to version 8.1.0 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/IonicaBizau/parse-url/commit/881ecb46e39286b0c2b3c32fe61dca9377176884">GitHub Commit</a></li>
|
||||
<li><a href="https://github.com/IonicaBizau/parse-url/pull/55">GitHub PR</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-JS-PARSEURL-3023021">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Improper Input Validation</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Package Manager: npm
|
||||
</li>
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
parse-url
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
|
||||
argo-cd-ui@1.0.0, git-url-parse@11.1.2 and others
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
<h3 class="card__section__title">Detailed paths</h3>
|
||||
|
||||
<ul class="card__meta__paths">
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
argo-cd-ui@1.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
git-url-parse@11.1.2
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
git-up@4.0.5
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
parse-url@6.0.5
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="overview">Overview</h2>
|
||||
<p><a href="https://www.npmjs.org/package/parse-url">parse-url</a> is an An advanced url parser supporting git urls too.</p>
|
||||
<p>Affected versions of this package are vulnerable to Improper Input Validation due to incorrect parsing of URLs. This allows the attacker to craft a malformed URL which can lead to a phishing attack.</p>
|
||||
<pre><code class="language-js">
|
||||
const parseUrl = require("parse-url");
|
||||
const Url = require("url");
|
||||
|
||||
const express = require('express');
|
||||
const app = express();
|
||||
|
||||
var url = "https://www.google.com:x@fakesite.com:x";
|
||||
parsed = parseUrl(url);
|
||||
console.log("[*]`parse-url` output: ")
|
||||
console.log(parsed);
|
||||
|
||||
parsed2 = Url.parse(url);
|
||||
console.log("[*]`url` output: ")
|
||||
console.log(parsed2)
|
||||
|
||||
app.get('/', (req, res) => {
|
||||
if (parsed.host == "www.google.com") {
|
||||
res.send("<a href=\'" + parsed2.href + "\'>CLICK ME!</a>")
|
||||
}
|
||||
})
|
||||
|
||||
app.listen(8888,"0.0.0.0");
|
||||
</code></pre>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>parse-url</code> to version 8.1.0 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/IonicaBizau/parse-url/commit/881ecb46e39286b0c2b3c32fe61dca9377176884">GitHub Commit</a></li>
|
||||
<li><a href="https://github.com/IonicaBizau/parse-url/commit/9500430a3b9973bb1b5b2b9b319af2685ad272b3">GitHub Commit</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-JS-PARSEURL-3024398">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Information Exposure</h2>
|
||||
@@ -939,216 +763,6 @@
|
||||
<p><a href="https://snyk.io/vuln/SNYK-JS-NODEFETCH-674311">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Regular Expression Denial of Service (ReDoS)</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Package Manager: npm
|
||||
</li>
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
minimatch
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
argo-cd-ui@1.0.0 and minimatch@3.0.4
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
<h3 class="card__section__title">Detailed paths</h3>
|
||||
|
||||
<ul class="card__meta__paths">
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
argo-cd-ui@1.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
minimatch@3.0.4
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="overview">Overview</h2>
|
||||
<p><a href="https://www.npmjs.com/package/minimatch">minimatch</a> is a minimal matching utility.</p>
|
||||
<p>Affected versions of this package are vulnerable to Regular Expression Denial of Service (ReDoS) via the <code>braceExpand</code> function in <code>minimatch.js</code>.</p>
|
||||
<h2 id="details">Details</h2>
|
||||
<p>Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its original and legitimate users. There are many types of DoS attacks, ranging from trying to clog the network pipes to the system by generating a large volume of traffic from many machines (a Distributed Denial of Service - DDoS - attack) to sending crafted requests that cause a system to crash or take a disproportional amount of time to process.</p>
|
||||
<p>The Regular expression Denial of Service (ReDoS) is a type of Denial of Service attack. Regular expressions are incredibly powerful, but they aren't very intuitive and can ultimately end up making it easy for attackers to take your site down.</p>
|
||||
<p>Let’s take the following regular expression as an example:</p>
|
||||
<pre><code class="language-js">regex = /A(B|C+)+D/
|
||||
</code></pre>
|
||||
<p>This regular expression accomplishes the following:</p>
|
||||
<ul>
|
||||
<li><code>A</code> The string must start with the letter 'A'</li>
|
||||
<li><code>(B|C+)+</code> The string must then follow the letter A with either the letter 'B' or some number of occurrences of the letter 'C' (the <code>+</code> matches one or more times). The <code>+</code> at the end of this section states that we can look for one or more matches of this section.</li>
|
||||
<li><code>D</code> Finally, we ensure this section of the string ends with a 'D'</li>
|
||||
</ul>
|
||||
<p>The expression would match inputs such as <code>ABBD</code>, <code>ABCCCCD</code>, <code>ABCBCCCD</code> and <code>ACCCCCD</code></p>
|
||||
<p>It most cases, it doesn't take very long for a regex engine to find a match:</p>
|
||||
<pre><code class="language-bash">$ time node -e '/A(B|C+)+D/.test("ACCCCCCCCCCCCCCCCCCCCCCCCCCCCD")'
|
||||
0.04s user 0.01s system 95% cpu 0.052 total
|
||||
|
||||
$ time node -e '/A(B|C+)+D/.test("ACCCCCCCCCCCCCCCCCCCCCCCCCCCCX")'
|
||||
1.79s user 0.02s system 99% cpu 1.812 total
|
||||
</code></pre>
|
||||
<p>The entire process of testing it against a 30 characters long string takes around ~52ms. But when given an invalid string, it takes nearly two seconds to complete the test, over ten times as long as it took to test a valid string. The dramatic difference is due to the way regular expressions get evaluated.</p>
|
||||
<p>Most Regex engines will work very similarly (with minor differences). The engine will match the first possible way to accept the current character and proceed to the next one. If it then fails to match the next one, it will backtrack and see if there was another way to digest the previous character. If it goes too far down the rabbit hole only to find out the string doesn’t match in the end, and if many characters have multiple valid regex paths, the number of backtracking steps can become very large, resulting in what is known as <em>catastrophic backtracking</em>.</p>
|
||||
<p>Let's look at how our expression runs into this problem, using a shorter string: "ACCCX". While it seems fairly straightforward, there are still four different ways that the engine could match those three C's:</p>
|
||||
<ol>
|
||||
<li>CCC</li>
|
||||
<li>CC+C</li>
|
||||
<li>C+CC</li>
|
||||
<li>C+C+C.</li>
|
||||
</ol>
|
||||
<p>The engine has to try each of those combinations to see if any of them potentially match against the expression. When you combine that with the other steps the engine must take, we can use <a href="https://regex101.com/debugger">RegEx 101 debugger</a> to see the engine has to take a total of 38 steps before it can determine the string doesn't match.</p>
|
||||
<p>From there, the number of steps the engine must use to validate a string just continues to grow.</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>String</th>
|
||||
<th align="right">Number of C's</th>
|
||||
<th align="right">Number of steps</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody><tr>
|
||||
<td>ACCCX</td>
|
||||
<td align="right">3</td>
|
||||
<td align="right">38</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ACCCCX</td>
|
||||
<td align="right">4</td>
|
||||
<td align="right">71</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ACCCCCX</td>
|
||||
<td align="right">5</td>
|
||||
<td align="right">136</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ACCCCCCCCCCCCCCX</td>
|
||||
<td align="right">14</td>
|
||||
<td align="right">65,553</td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
<p>By the time the string includes 14 C's, the engine has to take over 65,000 steps just to see if the string is valid. These extreme situations can cause them to work very slowly (exponentially related to input size, as shown above), allowing an attacker to exploit this and can cause the service to excessively consume CPU, resulting in a Denial of Service.</p>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>minimatch</code> to version 3.0.5 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/isaacs/minimatch/commit/a8763f4388e51956be62dc6025cec1126beeb5e6">GitHub Commit</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-JS-MINIMATCH-3050818">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Improper Input Validation</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Package Manager: golang
|
||||
</li>
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
golang.org/x/text/language
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
|
||||
github.com/argoproj/argo-cd/v2@0.0.0, sigs.k8s.io/controller-runtime/pkg/envtest@0.8.3 and others
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
<h3 class="card__section__title">Detailed paths</h3>
|
||||
|
||||
<ul class="card__meta__paths">
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
github.com/argoproj/argo-cd/v2@0.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
sigs.k8s.io/controller-runtime/pkg/envtest@0.8.3
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
sigs.k8s.io/controller-runtime/pkg/internal/testing/integration@0.8.3
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
sigs.k8s.io/controller-runtime/pkg/internal/testing/integration/internal@0.8.3
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/onsi/gomega/gexec@1.15.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/onsi/gomega@1.15.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/onsi/gomega/matchers@1.15.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
golang.org/x/net/html/charset@#491a49abca63
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
golang.org/x/text/encoding/htmlindex@0.3.6
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
golang.org/x/text/language@0.3.6
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="overview">Overview</h2>
|
||||
<p>Affected versions of this package are vulnerable to Improper Input Validation due to the parser being, by design, exposed to untrusted user input, which can be leveraged to force a program to consume significant time parsing <code>Accept-Language</code> headers.</p>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>golang.org/x/text/language</code> to version 0.3.8 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/golang/text/commit/434eadcdbc3b0256971992e8c70027278364c72c">GitHub Commit</a></li>
|
||||
<li><a href="https://github.com/golang/go/issues/56152">GitHub Issue</a></li>
|
||||
<li><a href="https://github.com/golang/text/releases/tag/v0.3.8">GitHub Release</a></li>
|
||||
<li><a href="https://groups.google.com/g/golang-dev/c/qfPIly0X7aU">Google Groups Forum</a></li>
|
||||
<li><a href="https://bugzilla.redhat.com/show_bug.cgi?id=2134010">RedHat Bugzilla Bug</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-GOLANG-GOLANGORGXTEXTLANGUAGE-3043869">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Out-of-bounds Read</h2>
|
||||
805
docs/snyk/v2.2.12/ghcr.io_dexidp_dex_v2.32.0.html
Normal file
805
docs/snyk/v2.2.12/ghcr.io_dexidp_dex_v2.32.0.html
Normal file
@@ -0,0 +1,805 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-us">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>Snyk test report</title>
|
||||
<meta name="description" content="3 known vulnerabilities found in 12 vulnerable dependency paths.">
|
||||
<base target="_blank">
|
||||
<link rel="icon" type="image/png" href="https://res.cloudinary.com/snyk/image/upload/v1468845142/favicon/favicon.png"
|
||||
sizes="194x194">
|
||||
<link rel="shortcut icon" href="https://res.cloudinary.com/snyk/image/upload/v1468845142/favicon/favicon.ico">
|
||||
<style type="text/css">
|
||||
|
||||
body {
|
||||
-moz-font-feature-settings: "pnum";
|
||||
-webkit-font-feature-settings: "pnum";
|
||||
font-variant-numeric: proportional-nums;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
font-feature-settings: "pnum";
|
||||
font-size: 100%;
|
||||
line-height: 1.5;
|
||||
min-height: 100vh;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background-color: #F5F5F5;
|
||||
font-family: 'Arial', 'Helvetica', Calibri, sans-serif;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
a,
|
||||
a:link,
|
||||
a:visited {
|
||||
border-bottom: 1px solid #4b45a9;
|
||||
text-decoration: none;
|
||||
color: #4b45a9;
|
||||
}
|
||||
|
||||
a:hover,
|
||||
a:focus,
|
||||
a:active {
|
||||
border-bottom: 1px solid #4b45a9;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: none;
|
||||
margin: 1em 0;
|
||||
border-top: 1px solid #c5c5c5;
|
||||
}
|
||||
|
||||
ul {
|
||||
padding: 0 1em;
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
code {
|
||||
background-color: #EEE;
|
||||
color: #333;
|
||||
padding: 0.25em 0.5em;
|
||||
border-radius: 0.25em;
|
||||
}
|
||||
|
||||
pre {
|
||||
background-color: #333;
|
||||
font-family: monospace;
|
||||
padding: 0.5em 1em 0.75em;
|
||||
border-radius: 0.25em;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
pre code {
|
||||
padding: 0;
|
||||
background-color: transparent;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
a code {
|
||||
border-radius: .125rem .125rem 0 0;
|
||||
padding-bottom: 0;
|
||||
color: #4b45a9;
|
||||
}
|
||||
|
||||
a[href^="http://"]:after,
|
||||
a[href^="https://"]:after {
|
||||
background-image: linear-gradient(transparent,transparent),url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20112%20109%22%3E%3Cg%20id%3D%22Page-1%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Cg%20id%3D%22link-external%22%3E%3Cg%20id%3D%22arrow%22%3E%3Cpath%20id%3D%22Line%22%20stroke%3D%22%234B45A9%22%20stroke-width%3D%2215%22%20d%3D%22M88.5%2021l-43%2042.5%22%20stroke-linecap%3D%22square%22%2F%3E%3Cpath%20id%3D%22Triangle%22%20fill%3D%22%234B45A9%22%20d%3D%22M111.2%200v50L61%200z%22%2F%3E%3C%2Fg%3E%3Cpath%20id%3D%22square%22%20fill%3D%22%234B45A9%22%20d%3D%22M66%2015H0v94h94V44L79%2059v35H15V30h36z%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
|
||||
background-repeat: no-repeat;
|
||||
background-size: .75rem;
|
||||
content: "";
|
||||
display: inline-block;
|
||||
height: .75rem;
|
||||
margin-left: .25rem;
|
||||
width: .75rem;
|
||||
}
|
||||
|
||||
|
||||
/* Layout */
|
||||
|
||||
[class*=layout-container] {
|
||||
margin: 0 auto;
|
||||
max-width: 71.25em;
|
||||
padding: 1.9em 1.3em;
|
||||
position: relative;
|
||||
}
|
||||
.layout-container--short {
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
max-width: 48.75em;
|
||||
}
|
||||
|
||||
.layout-container--short:after {
|
||||
display: block;
|
||||
content: "";
|
||||
clear: both;
|
||||
}
|
||||
|
||||
/* Header */
|
||||
|
||||
.header {
|
||||
padding-bottom: 1px;
|
||||
}
|
||||
|
||||
.paths {
|
||||
margin-left: 8px;
|
||||
}
|
||||
.header-wrap {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
padding-top: 2em;
|
||||
}
|
||||
.project__header {
|
||||
background-color: #4b45a9;
|
||||
color: #fff;
|
||||
margin-bottom: -1px;
|
||||
padding-top: 1em;
|
||||
padding-bottom: 0.25em;
|
||||
border-bottom: 2px solid #BBB;
|
||||
}
|
||||
|
||||
.project__header__title {
|
||||
overflow-wrap: break-word;
|
||||
word-wrap: break-word;
|
||||
word-break: break-all;
|
||||
margin-bottom: .1em;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.timestamp {
|
||||
float: right;
|
||||
clear: none;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.meta-counts {
|
||||
clear: both;
|
||||
display: block;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
margin: 0 0 1.5em;
|
||||
color: #fff;
|
||||
clear: both;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
.meta-count {
|
||||
display: block;
|
||||
flex-basis: 100%;
|
||||
margin: 0 1em 1em 0;
|
||||
float: left;
|
||||
padding-right: 1em;
|
||||
border-right: 2px solid #fff;
|
||||
}
|
||||
|
||||
.meta-count:last-child {
|
||||
border-right: 0;
|
||||
padding-right: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
/* Card */
|
||||
|
||||
.card {
|
||||
background-color: #fff;
|
||||
border: 1px solid #c5c5c5;
|
||||
border-radius: .25rem;
|
||||
margin: 0 0 2em 0;
|
||||
position: relative;
|
||||
min-height: 40px;
|
||||
padding: 1.5em;
|
||||
}
|
||||
|
||||
.card .label {
|
||||
background-color: #767676;
|
||||
border: 2px solid #767676;
|
||||
color: white;
|
||||
padding: 0.25rem 0.75rem;
|
||||
font-size: 0.875rem;
|
||||
text-transform: uppercase;
|
||||
display: inline-block;
|
||||
margin: 0;
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
|
||||
.card .label__text {
|
||||
vertical-align: text-top;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.card .label--critical {
|
||||
background-color: #AB1A1A;
|
||||
border-color: #AB1A1A;
|
||||
}
|
||||
|
||||
.card .label--high {
|
||||
background-color: #CE5019;
|
||||
border-color: #CE5019;
|
||||
}
|
||||
|
||||
.card .label--medium {
|
||||
background-color: #D68000;
|
||||
border-color: #D68000;
|
||||
}
|
||||
|
||||
.card .label--low {
|
||||
background-color: #88879E;
|
||||
border-color: #88879E;
|
||||
}
|
||||
|
||||
.severity--low {
|
||||
border-color: #88879E;
|
||||
}
|
||||
|
||||
.severity--medium {
|
||||
border-color: #D68000;
|
||||
}
|
||||
|
||||
.severity--high {
|
||||
border-color: #CE5019;
|
||||
}
|
||||
|
||||
.severity--critical {
|
||||
border-color: #AB1A1A;
|
||||
}
|
||||
|
||||
.card--vuln {
|
||||
padding-top: 4em;
|
||||
}
|
||||
|
||||
.card--vuln .label {
|
||||
left: 0;
|
||||
position: absolute;
|
||||
top: 1.1em;
|
||||
padding-left: 1.9em;
|
||||
padding-right: 1.9em;
|
||||
border-radius: 0 0.25rem 0.25rem 0;
|
||||
}
|
||||
|
||||
.card--vuln .card__section h2 {
|
||||
font-size: 22px;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
.card--vuln .card__section p {
|
||||
margin: 0 0 0.5em 0;
|
||||
}
|
||||
|
||||
.card--vuln .card__meta {
|
||||
padding: 0 0 0 1em;
|
||||
margin: 0;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
.card .card__meta__paths {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
.card--vuln .card__title {
|
||||
font-size: 28px;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.card--vuln .card__cta p {
|
||||
margin: 0;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.source-panel {
|
||||
clear: both;
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
padding: 0.5em 0;
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
|
||||
|
||||
</style>
|
||||
<style type="text/css">
|
||||
.metatable {
|
||||
text-size-adjust: 100%;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-box-direction: normal;
|
||||
color: inherit;
|
||||
font-feature-settings: "pnum";
|
||||
box-sizing: border-box;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
font: inherit;
|
||||
font-size: 100%;
|
||||
margin: 0;
|
||||
outline: none;
|
||||
padding: 0;
|
||||
text-align: left;
|
||||
text-decoration: none;
|
||||
vertical-align: baseline;
|
||||
z-index: auto;
|
||||
margin-top: 12px;
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
font-variant-numeric: tabular-nums;
|
||||
max-width: 51.75em;
|
||||
}
|
||||
|
||||
tbody {
|
||||
text-size-adjust: 100%;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-box-direction: normal;
|
||||
color: inherit;
|
||||
font-feature-settings: "pnum";
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
box-sizing: border-box;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
font: inherit;
|
||||
font-size: 100%;
|
||||
margin: 0;
|
||||
outline: none;
|
||||
padding: 0;
|
||||
text-align: left;
|
||||
text-decoration: none;
|
||||
vertical-align: baseline;
|
||||
z-index: auto;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.meta-row {
|
||||
text-size-adjust: 100%;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-box-direction: normal;
|
||||
color: inherit;
|
||||
font-feature-settings: "pnum";
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
box-sizing: border-box;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
font: inherit;
|
||||
font-size: 100%;
|
||||
outline: none;
|
||||
text-align: left;
|
||||
text-decoration: none;
|
||||
vertical-align: baseline;
|
||||
z-index: auto;
|
||||
display: flex;
|
||||
align-items: start;
|
||||
border-top: 1px solid #d3d3d9;
|
||||
padding: 8px 0 0 0;
|
||||
border-bottom: none;
|
||||
margin: 8px;
|
||||
width: 47.75%;
|
||||
}
|
||||
|
||||
.meta-row-label {
|
||||
text-size-adjust: 100%;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-box-direction: normal;
|
||||
font-feature-settings: "pnum";
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
color: #4c4a73;
|
||||
box-sizing: border-box;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
font: inherit;
|
||||
margin: 0;
|
||||
outline: none;
|
||||
text-decoration: none;
|
||||
z-index: auto;
|
||||
align-self: start;
|
||||
flex: 1;
|
||||
font-size: 1rem;
|
||||
line-height: 1.5rem;
|
||||
padding: 0;
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
text-transform: none;
|
||||
letter-spacing: 0;
|
||||
}
|
||||
|
||||
.meta-row-value {
|
||||
text-size-adjust: 100%;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-box-direction: normal;
|
||||
color: inherit;
|
||||
font-feature-settings: "pnum";
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
word-break: break-word;
|
||||
box-sizing: border-box;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
font: inherit;
|
||||
font-size: 100%;
|
||||
margin: 0;
|
||||
outline: none;
|
||||
padding: 0;
|
||||
text-align: right;
|
||||
text-decoration: none;
|
||||
vertical-align: baseline;
|
||||
z-index: auto;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body class="section-projects">
|
||||
<main class="layout-stacked">
|
||||
<div class="layout-stacked__header header">
|
||||
<header class="project__header">
|
||||
<div class="layout-container">
|
||||
<a class="brand" href="https://snyk.io" title="Snyk">
|
||||
<svg width="68px" height="35px" viewBox="0 0 68 35" version="1.1" xmlns="http://www.w3.org/2000/svg" role="img">
|
||||
<title>Snyk - Open Source Security</title>
|
||||
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g fill="#fff">
|
||||
<path d="M5.732,27.278 C3.445,27.278 1.589,26.885 0,26.124 L0.483,22.472 C2.163,23.296 4.056,23.689 5.643,23.689 C6.801,23.689 7.563,23.295 7.563,22.599 C7.563,20.594 0.333,21.076 0.333,15.839 C0.333,12.491 3.407,10.729 7.259,10.729 C9.179,10.729 11.161,11.249 12.444,11.704 L11.924,15.294 C10.577,14.774 8.747,14.291 7.222,14.291 C6.282,14.291 5.518,14.621 5.518,15.231 C5.518,17.208 12.903,16.815 12.903,21.925 C12.903,25.325 9.877,27.277 5.733,27.277 L5.732,27.278 Z M25.726,26.936 L25.726,17.894 C25.726,15.827 24.811,14.85 23.069,14.85 C22.219,14.85 21.329,15.09 20.719,15.46 L20.719,26.936 L15.352,26.936 L15.352,11.262 L20.602,10.83 L20.474,13.392 L20.652,13.392 C21.784,11.87 23.702,10.716 25.992,10.716 C28.736,10.716 31.112,12.416 31.112,16.436 L31.112,26.936 L25.724,26.936 L25.726,26.936 Z M61.175,26.936 L56.879,19.479 L56.446,19.479 L56.446,26.935 L51.082,26.935 L51.082,8.37 L56.447,0 L56.447,17.323 C57.515,16.017 61.112,11.059 61.112,11.059 L67.732,11.059 L61.454,17.689 L67.949,26.95 L61.175,26.95 L61.175,26.938 L61.175,26.936 Z M44.13,11.11 L41.93,18.262 C41.5,19.606 41.08,22.079 41.08,22.079 C41.08,22.079 40.75,19.516 40.292,18.172 L37.94,11.108 L31.928,11.108 L38.462,26.935 C37.572,29.04 36.199,30.815 34.369,30.815 C34.039,30.815 33.709,30.802 33.389,30.765 L31.255,34.061 C31.928,34.441 33.212,34.835 34.737,34.835 C38.703,34.835 41.359,31.627 43.215,26.885 L49.443,11.108 L44.132,11.108 L44.13,11.11 Z"></path>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</a>
|
||||
<div class="header-wrap">
|
||||
<h1 class="project__header__title">Snyk test report</h1>
|
||||
|
||||
<p class="timestamp">September 7th 2022, 7:39:09 pm</p>
|
||||
</div>
|
||||
<div class="source-panel">
|
||||
<span>Scanned the following path:</span>
|
||||
<ul>
|
||||
<li class="paths">ghcr.io/dexidp/dex:v2.32.0/dexidp/dex (apk)</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="meta-counts">
|
||||
<div class="meta-count"><span>3</span> <span>known vulnerabilities</span></div>
|
||||
<div class="meta-count"><span>12 vulnerable dependency paths</span></div>
|
||||
<div class="meta-count"><span>14</span> <span>dependencies</span></div>
|
||||
</div><!-- .meta-counts -->
|
||||
</div><!-- .layout-container--short -->
|
||||
</header><!-- .project__header -->
|
||||
</div><!-- .layout-stacked__header -->
|
||||
<section class="layout-container">
|
||||
<table class="metatable">
|
||||
<tbody>
|
||||
<tr class="meta-row"><th class="meta-row-label">Project</th> <td class="meta-row-value">docker-image|ghcr.io/dexidp/dex</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Path</th> <td class="meta-row-value">ghcr.io/dexidp/dex:v2.32.0/dexidp/dex</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Package Manager</th> <td class="meta-row-value">apk</td></tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
<div class="layout-container" style="padding-top: 35px;">
|
||||
<div class="cards--vuln filter--patch filter--ignore">
|
||||
<div class="card card--vuln disclosure--not-new severity--critical" data-snyk-test="critical">
|
||||
<h2 class="card__title">Out-of-bounds Write</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--critical">
|
||||
<span class="label__text">critical severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Package Manager: alpine:3.16
|
||||
</li>
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
zlib/zlib
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0 and zlib/zlib@1.2.12-r1
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
<h3 class="card__section__title">Detailed paths</h3>
|
||||
|
||||
<ul class="card__meta__paths">
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
zlib/zlib@1.2.12-r1
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
apk-tools/apk-tools@2.12.9-r3
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
zlib/zlib@1.2.12-r1
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="nvd-description">NVD Description</h2>
|
||||
<p><strong><em>Note:</em></strong> <em>Versions mentioned in the description apply to the upstream <code>zlib</code> package.</em>
|
||||
<em>See <code>How to fix?</code> for <code>Alpine:3.16</code> relevant versions.</em></p>
|
||||
<p>zlib through 1.2.12 has a heap-based buffer over-read or buffer overflow in inflate in inflate.c via a large gzip header extra field. NOTE: only applications that call inflateGetHeader are affected. Some common applications bundle the affected zlib source code but may be unable to call inflateGetHeader (e.g., see the nodejs/node reference).</p>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>Alpine:3.16</code> <code>zlib</code> to version 1.2.12-r2 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/nodejs/node/blob/75b68c6e4db515f76df73af476eccf382bbcb00a/deps/zlib/inflate.c#L762-L764">MISC</a></li>
|
||||
<li><a href="https://github.com/ivd38/zlib_overflow">MISC</a></li>
|
||||
<li><a href="https://github.com/madler/zlib/commit/eff308af425b67093bab25f80f1ae950166bece1">MISC</a></li>
|
||||
<li><a href="https://github.com/madler/zlib/blob/21767c654d31d2dccdde4330529775c6c5fd5389/zlib.h#L1062-L1063">MISC</a></li>
|
||||
<li><a href="http://www.openwall.com/lists/oss-security/2022/08/05/2">MLIST</a></li>
|
||||
<li><a href="https://github.com/curl/curl/issues/9271">MISC</a></li>
|
||||
<li><a href="http://www.openwall.com/lists/oss-security/2022/08/09/1">MLIST</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/YRQAI7H4M4RQZ2IWZUEEXECBE5D56BH2/">FEDORA</a></li>
|
||||
<li><a href="https://www.debian.org/security/2022/dsa-5218">DEBIAN</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/NMBOJ77A7T7PQCARMDUK75TE6LLESZ3O/">FEDORA</a></li>
|
||||
<li><a href="https://security.netapp.com/advisory/ntap-20220901-0005/">CONFIRM</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/JWN4VE3JQR4O2SOUS5TXNLANRPMHWV4I/">FEDORA</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-ALPINE316-ZLIB-2976176">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--high" data-snyk-test="high">
|
||||
<h2 class="card__title">Use After Free</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--high">
|
||||
<span class="label__text">high severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Package Manager: alpine:3.16
|
||||
</li>
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
busybox/busybox
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0 and busybox/busybox@1.35.0-r13
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
<h3 class="card__section__title">Detailed paths</h3>
|
||||
|
||||
<ul class="card__meta__paths">
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
busybox/busybox@1.35.0-r13
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
alpine-baselayout/alpine-baselayout-data@3.2.0-r20
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
alpine-baselayout/alpine-baselayout@3.2.0-r20
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
busybox/busybox@1.35.0-r13
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
busybox/ssl_client@1.35.0-r13
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="nvd-description">NVD Description</h2>
|
||||
<p><strong><em>Note:</em></strong> <em>Versions mentioned in the description apply to the upstream <code>busybox</code> package.</em>
|
||||
<em>See <code>How to fix?</code> for <code>Alpine:3.16</code> relevant versions.</em></p>
|
||||
<p>A use-after-free in Busybox 1.35-x's awk applet leads to denial of service and possibly code execution when processing a crafted awk pattern in the copyvar function.</p>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>Alpine:3.16</code> <code>busybox</code> to version 1.35.0-r15 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://bugs.busybox.net/show_bug.cgi?id=14781">MISC</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-ALPINE316-BUSYBOX-2953070">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Inadequate Encryption Strength</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Package Manager: alpine:3.16
|
||||
</li>
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
openssl/libcrypto1.1
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0 and openssl/libcrypto1.1@1.1.1o-r0
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
<h3 class="card__section__title">Detailed paths</h3>
|
||||
|
||||
<ul class="card__meta__paths">
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
openssl/libcrypto1.1@1.1.1o-r0
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
openssl/libssl1.1@1.1.1o-r0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
openssl/libcrypto1.1@1.1.1o-r0
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
apk-tools/apk-tools@2.12.9-r3
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
openssl/libcrypto1.1@1.1.1o-r0
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
busybox/ssl_client@1.35.0-r13
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
openssl/libcrypto1.1@1.1.1o-r0
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
openssl/libssl1.1@1.1.1o-r0
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
apk-tools/apk-tools@2.12.9-r3
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
openssl/libssl1.1@1.1.1o-r0
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
busybox/ssl_client@1.35.0-r13
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
openssl/libssl1.1@1.1.1o-r0
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="nvd-description">NVD Description</h2>
|
||||
<p><strong><em>Note:</em></strong> <em>Versions mentioned in the description apply to the upstream <code>openssl</code> package.</em>
|
||||
<em>See <code>How to fix?</code> for <code>Alpine:3.16</code> relevant versions.</em></p>
|
||||
<p>AES OCB mode for 32-bit x86 platforms using the AES-NI assembly optimised implementation will not encrypt the entirety of the data under some circumstances. This could reveal sixteen bytes of data that was preexisting in the memory that wasn't written. In the special case of "in place" encryption, sixteen bytes of the plaintext would be revealed. Since OpenSSL does not support OCB based cipher suites for TLS and DTLS, they are both unaffected. Fixed in OpenSSL 3.0.5 (Affected 3.0.0-3.0.4). Fixed in OpenSSL 1.1.1q (Affected 1.1.1-1.1.1p).</p>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>Alpine:3.16</code> <code>openssl</code> to version 1.1.1q-r0 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://www.openssl.org/news/secadv/20220705.txt">CONFIRM</a></li>
|
||||
<li><a href="https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=a98f339ddd7e8f487d6e0088d4a9a42324885a93">CONFIRM</a></li>
|
||||
<li><a href="https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=919925673d6c9cfed3c1085497f5dfbbed5fc431">CONFIRM</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/V6567JERRHHJW2GNGJGKDRNHR7SNPZK7/">FEDORA</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/R6CK57NBQFTPUMXAPJURCGXUYT76NQAK/">FEDORA</a></li>
|
||||
<li><a href="https://security.netapp.com/advisory/ntap-20220715-0011/">CONFIRM</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/VCMNWKERPBKOEBNL7CLTTX3ZZCZLH7XA/">FEDORA</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-ALPINE316-OPENSSL-2941806">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
</div><!-- cards -->
|
||||
</div>
|
||||
</main><!-- .layout-stacked__content -->
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -7,7 +7,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>Snyk test report</title>
|
||||
<meta name="description" content="0 known vulnerabilities found in 0 vulnerable dependency paths.">
|
||||
<meta name="description" content="1 known vulnerabilities found in 3 vulnerable dependency paths.">
|
||||
<base target="_blank">
|
||||
<link rel="icon" type="image/png" href="https://res.cloudinary.com/snyk/image/upload/v1468845142/favicon/favicon.png"
|
||||
sizes="194x194">
|
||||
@@ -456,7 +456,7 @@
|
||||
<div class="header-wrap">
|
||||
<h1 class="project__header__title">Snyk test report</h1>
|
||||
|
||||
<p class="timestamp">October 30th 2022, 12:23:42 am</p>
|
||||
<p class="timestamp">September 7th 2022, 7:39:13 pm</p>
|
||||
</div>
|
||||
<div class="source-panel">
|
||||
<span>Scanned the following path:</span>
|
||||
@@ -466,8 +466,8 @@
|
||||
</div>
|
||||
|
||||
<div class="meta-counts">
|
||||
<div class="meta-count"><span>0</span> <span>known vulnerabilities</span></div>
|
||||
<div class="meta-count"><span>0 vulnerable dependency paths</span></div>
|
||||
<div class="meta-count"><span>1</span> <span>known vulnerabilities</span></div>
|
||||
<div class="meta-count"><span>3 vulnerable dependency paths</span></div>
|
||||
<div class="meta-count"><span>17</span> <span>dependencies</span></div>
|
||||
</div><!-- .meta-counts -->
|
||||
</div><!-- .layout-container--short -->
|
||||
@@ -484,7 +484,107 @@
|
||||
</table>
|
||||
</section>
|
||||
<div class="layout-container" style="padding-top: 35px;">
|
||||
No known vulnerabilities detected.
|
||||
<div class="cards--vuln filter--patch filter--ignore">
|
||||
<div class="card card--vuln disclosure--not-new severity--critical" data-snyk-test="critical">
|
||||
<h2 class="card__title">Out-of-bounds Write</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--critical">
|
||||
<span class="label__text">critical severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Package Manager: alpine:3.16
|
||||
</li>
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
zlib/zlib
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
docker-image|haproxy@2.0.29-alpine and zlib/zlib@1.2.12-r1
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
<h3 class="card__section__title">Detailed paths</h3>
|
||||
|
||||
<ul class="card__meta__paths">
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|haproxy@2.0.29-alpine
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
zlib/zlib@1.2.12-r1
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|haproxy@2.0.29-alpine
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
.haproxy-rundeps@20220718.230945
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
zlib/zlib@1.2.12-r1
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|haproxy@2.0.29-alpine
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
apk-tools/apk-tools@2.12.9-r3
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
zlib/zlib@1.2.12-r1
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="nvd-description">NVD Description</h2>
|
||||
<p><strong><em>Note:</em></strong> <em>Versions mentioned in the description apply to the upstream <code>zlib</code> package.</em>
|
||||
<em>See <code>How to fix?</code> for <code>Alpine:3.16</code> relevant versions.</em></p>
|
||||
<p>zlib through 1.2.12 has a heap-based buffer over-read or buffer overflow in inflate in inflate.c via a large gzip header extra field. NOTE: only applications that call inflateGetHeader are affected. Some common applications bundle the affected zlib source code but may be unable to call inflateGetHeader (e.g., see the nodejs/node reference).</p>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>Alpine:3.16</code> <code>zlib</code> to version 1.2.12-r2 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/nodejs/node/blob/75b68c6e4db515f76df73af476eccf382bbcb00a/deps/zlib/inflate.c#L762-L764">MISC</a></li>
|
||||
<li><a href="https://github.com/ivd38/zlib_overflow">MISC</a></li>
|
||||
<li><a href="https://github.com/madler/zlib/commit/eff308af425b67093bab25f80f1ae950166bece1">MISC</a></li>
|
||||
<li><a href="https://github.com/madler/zlib/blob/21767c654d31d2dccdde4330529775c6c5fd5389/zlib.h#L1062-L1063">MISC</a></li>
|
||||
<li><a href="http://www.openwall.com/lists/oss-security/2022/08/05/2">MLIST</a></li>
|
||||
<li><a href="https://github.com/curl/curl/issues/9271">MISC</a></li>
|
||||
<li><a href="http://www.openwall.com/lists/oss-security/2022/08/09/1">MLIST</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/YRQAI7H4M4RQZ2IWZUEEXECBE5D56BH2/">FEDORA</a></li>
|
||||
<li><a href="https://www.debian.org/security/2022/dsa-5218">DEBIAN</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/NMBOJ77A7T7PQCARMDUK75TE6LLESZ3O/">FEDORA</a></li>
|
||||
<li><a href="https://security.netapp.com/advisory/ntap-20220901-0005/">CONFIRM</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/JWN4VE3JQR4O2SOUS5TXNLANRPMHWV4I/">FEDORA</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-ALPINE316-ZLIB-2976176">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
</div><!-- cards -->
|
||||
</div>
|
||||
</main><!-- .layout-stacked__content -->
|
||||
</body>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>Snyk test report</title>
|
||||
<meta name="description" content="0 known vulnerabilities found in 0 vulnerable dependency paths.">
|
||||
<meta name="description" content="1 known vulnerabilities found in 2 vulnerable dependency paths.">
|
||||
<base target="_blank">
|
||||
<link rel="icon" type="image/png" href="https://res.cloudinary.com/snyk/image/upload/v1468845142/favicon/favicon.png"
|
||||
sizes="194x194">
|
||||
@@ -456,7 +456,7 @@
|
||||
<div class="header-wrap">
|
||||
<h1 class="project__header__title">Snyk test report</h1>
|
||||
|
||||
<p class="timestamp">October 30th 2022, 12:26:25 am</p>
|
||||
<p class="timestamp">September 7th 2022, 7:39:41 pm</p>
|
||||
</div>
|
||||
<div class="source-panel">
|
||||
<span>Scanned the following path:</span>
|
||||
@@ -466,8 +466,8 @@
|
||||
</div>
|
||||
|
||||
<div class="meta-counts">
|
||||
<div class="meta-count"><span>0</span> <span>known vulnerabilities</span></div>
|
||||
<div class="meta-count"><span>0 vulnerable dependency paths</span></div>
|
||||
<div class="meta-count"><span>1</span> <span>known vulnerabilities</span></div>
|
||||
<div class="meta-count"><span>2 vulnerable dependency paths</span></div>
|
||||
<div class="meta-count"><span>17</span> <span>dependencies</span></div>
|
||||
</div><!-- .meta-counts -->
|
||||
</div><!-- .layout-container--short -->
|
||||
@@ -484,7 +484,96 @@
|
||||
</table>
|
||||
</section>
|
||||
<div class="layout-container" style="padding-top: 35px;">
|
||||
No known vulnerabilities detected.
|
||||
<div class="cards--vuln filter--patch filter--ignore">
|
||||
<div class="card card--vuln disclosure--not-new severity--critical" data-snyk-test="critical">
|
||||
<h2 class="card__title">Out-of-bounds Write</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--critical">
|
||||
<span class="label__text">critical severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Package Manager: alpine:3.16
|
||||
</li>
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
zlib/zlib
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
docker-image|redis@6.2.7-alpine and zlib/zlib@1.2.12-r1
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
<h3 class="card__section__title">Detailed paths</h3>
|
||||
|
||||
<ul class="card__meta__paths">
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|redis@6.2.7-alpine
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
zlib/zlib@1.2.12-r1
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|redis@6.2.7-alpine
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
apk-tools/apk-tools@2.12.9-r3
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
zlib/zlib@1.2.12-r1
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="nvd-description">NVD Description</h2>
|
||||
<p><strong><em>Note:</em></strong> <em>Versions mentioned in the description apply to the upstream <code>zlib</code> package.</em>
|
||||
<em>See <code>How to fix?</code> for <code>Alpine:3.16</code> relevant versions.</em></p>
|
||||
<p>zlib through 1.2.12 has a heap-based buffer over-read or buffer overflow in inflate in inflate.c via a large gzip header extra field. NOTE: only applications that call inflateGetHeader are affected. Some common applications bundle the affected zlib source code but may be unable to call inflateGetHeader (e.g., see the nodejs/node reference).</p>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>Alpine:3.16</code> <code>zlib</code> to version 1.2.12-r2 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/nodejs/node/blob/75b68c6e4db515f76df73af476eccf382bbcb00a/deps/zlib/inflate.c#L762-L764">MISC</a></li>
|
||||
<li><a href="https://github.com/ivd38/zlib_overflow">MISC</a></li>
|
||||
<li><a href="https://github.com/madler/zlib/commit/eff308af425b67093bab25f80f1ae950166bece1">MISC</a></li>
|
||||
<li><a href="https://github.com/madler/zlib/blob/21767c654d31d2dccdde4330529775c6c5fd5389/zlib.h#L1062-L1063">MISC</a></li>
|
||||
<li><a href="http://www.openwall.com/lists/oss-security/2022/08/05/2">MLIST</a></li>
|
||||
<li><a href="https://github.com/curl/curl/issues/9271">MISC</a></li>
|
||||
<li><a href="http://www.openwall.com/lists/oss-security/2022/08/09/1">MLIST</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/YRQAI7H4M4RQZ2IWZUEEXECBE5D56BH2/">FEDORA</a></li>
|
||||
<li><a href="https://www.debian.org/security/2022/dsa-5218">DEBIAN</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/NMBOJ77A7T7PQCARMDUK75TE6LLESZ3O/">FEDORA</a></li>
|
||||
<li><a href="https://security.netapp.com/advisory/ntap-20220901-0005/">CONFIRM</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/JWN4VE3JQR4O2SOUS5TXNLANRPMHWV4I/">FEDORA</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-ALPINE316-ZLIB-2976176">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
</div><!-- cards -->
|
||||
</div>
|
||||
</main><!-- .layout-stacked__content -->
|
||||
</body>
|
||||
@@ -1,492 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-us">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>Snyk test report</title>
|
||||
<meta name="description" content="0 known vulnerabilities found in 0 vulnerable dependency paths.">
|
||||
<base target="_blank">
|
||||
<link rel="icon" type="image/png" href="https://res.cloudinary.com/snyk/image/upload/v1468845142/favicon/favicon.png"
|
||||
sizes="194x194">
|
||||
<link rel="shortcut icon" href="https://res.cloudinary.com/snyk/image/upload/v1468845142/favicon/favicon.ico">
|
||||
<style type="text/css">
|
||||
|
||||
body {
|
||||
-moz-font-feature-settings: "pnum";
|
||||
-webkit-font-feature-settings: "pnum";
|
||||
font-variant-numeric: proportional-nums;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
font-feature-settings: "pnum";
|
||||
font-size: 100%;
|
||||
line-height: 1.5;
|
||||
min-height: 100vh;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background-color: #F5F5F5;
|
||||
font-family: 'Arial', 'Helvetica', Calibri, sans-serif;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
a,
|
||||
a:link,
|
||||
a:visited {
|
||||
border-bottom: 1px solid #4b45a9;
|
||||
text-decoration: none;
|
||||
color: #4b45a9;
|
||||
}
|
||||
|
||||
a:hover,
|
||||
a:focus,
|
||||
a:active {
|
||||
border-bottom: 1px solid #4b45a9;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: none;
|
||||
margin: 1em 0;
|
||||
border-top: 1px solid #c5c5c5;
|
||||
}
|
||||
|
||||
ul {
|
||||
padding: 0 1em;
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
code {
|
||||
background-color: #EEE;
|
||||
color: #333;
|
||||
padding: 0.25em 0.5em;
|
||||
border-radius: 0.25em;
|
||||
}
|
||||
|
||||
pre {
|
||||
background-color: #333;
|
||||
font-family: monospace;
|
||||
padding: 0.5em 1em 0.75em;
|
||||
border-radius: 0.25em;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
pre code {
|
||||
padding: 0;
|
||||
background-color: transparent;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
a code {
|
||||
border-radius: .125rem .125rem 0 0;
|
||||
padding-bottom: 0;
|
||||
color: #4b45a9;
|
||||
}
|
||||
|
||||
a[href^="http://"]:after,
|
||||
a[href^="https://"]:after {
|
||||
background-image: linear-gradient(transparent,transparent),url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20112%20109%22%3E%3Cg%20id%3D%22Page-1%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Cg%20id%3D%22link-external%22%3E%3Cg%20id%3D%22arrow%22%3E%3Cpath%20id%3D%22Line%22%20stroke%3D%22%234B45A9%22%20stroke-width%3D%2215%22%20d%3D%22M88.5%2021l-43%2042.5%22%20stroke-linecap%3D%22square%22%2F%3E%3Cpath%20id%3D%22Triangle%22%20fill%3D%22%234B45A9%22%20d%3D%22M111.2%200v50L61%200z%22%2F%3E%3C%2Fg%3E%3Cpath%20id%3D%22square%22%20fill%3D%22%234B45A9%22%20d%3D%22M66%2015H0v94h94V44L79%2059v35H15V30h36z%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
|
||||
background-repeat: no-repeat;
|
||||
background-size: .75rem;
|
||||
content: "";
|
||||
display: inline-block;
|
||||
height: .75rem;
|
||||
margin-left: .25rem;
|
||||
width: .75rem;
|
||||
}
|
||||
|
||||
|
||||
/* Layout */
|
||||
|
||||
[class*=layout-container] {
|
||||
margin: 0 auto;
|
||||
max-width: 71.25em;
|
||||
padding: 1.9em 1.3em;
|
||||
position: relative;
|
||||
}
|
||||
.layout-container--short {
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
max-width: 48.75em;
|
||||
}
|
||||
|
||||
.layout-container--short:after {
|
||||
display: block;
|
||||
content: "";
|
||||
clear: both;
|
||||
}
|
||||
|
||||
/* Header */
|
||||
|
||||
.header {
|
||||
padding-bottom: 1px;
|
||||
}
|
||||
|
||||
.paths {
|
||||
margin-left: 8px;
|
||||
}
|
||||
.header-wrap {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
padding-top: 2em;
|
||||
}
|
||||
.project__header {
|
||||
background-color: #4b45a9;
|
||||
color: #fff;
|
||||
margin-bottom: -1px;
|
||||
padding-top: 1em;
|
||||
padding-bottom: 0.25em;
|
||||
border-bottom: 2px solid #BBB;
|
||||
}
|
||||
|
||||
.project__header__title {
|
||||
overflow-wrap: break-word;
|
||||
word-wrap: break-word;
|
||||
word-break: break-all;
|
||||
margin-bottom: .1em;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.timestamp {
|
||||
float: right;
|
||||
clear: none;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.meta-counts {
|
||||
clear: both;
|
||||
display: block;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
margin: 0 0 1.5em;
|
||||
color: #fff;
|
||||
clear: both;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
.meta-count {
|
||||
display: block;
|
||||
flex-basis: 100%;
|
||||
margin: 0 1em 1em 0;
|
||||
float: left;
|
||||
padding-right: 1em;
|
||||
border-right: 2px solid #fff;
|
||||
}
|
||||
|
||||
.meta-count:last-child {
|
||||
border-right: 0;
|
||||
padding-right: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
/* Card */
|
||||
|
||||
.card {
|
||||
background-color: #fff;
|
||||
border: 1px solid #c5c5c5;
|
||||
border-radius: .25rem;
|
||||
margin: 0 0 2em 0;
|
||||
position: relative;
|
||||
min-height: 40px;
|
||||
padding: 1.5em;
|
||||
}
|
||||
|
||||
.card .label {
|
||||
background-color: #767676;
|
||||
border: 2px solid #767676;
|
||||
color: white;
|
||||
padding: 0.25rem 0.75rem;
|
||||
font-size: 0.875rem;
|
||||
text-transform: uppercase;
|
||||
display: inline-block;
|
||||
margin: 0;
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
|
||||
.card .label__text {
|
||||
vertical-align: text-top;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.card .label--critical {
|
||||
background-color: #AB1A1A;
|
||||
border-color: #AB1A1A;
|
||||
}
|
||||
|
||||
.card .label--high {
|
||||
background-color: #CE5019;
|
||||
border-color: #CE5019;
|
||||
}
|
||||
|
||||
.card .label--medium {
|
||||
background-color: #D68000;
|
||||
border-color: #D68000;
|
||||
}
|
||||
|
||||
.card .label--low {
|
||||
background-color: #88879E;
|
||||
border-color: #88879E;
|
||||
}
|
||||
|
||||
.severity--low {
|
||||
border-color: #88879E;
|
||||
}
|
||||
|
||||
.severity--medium {
|
||||
border-color: #D68000;
|
||||
}
|
||||
|
||||
.severity--high {
|
||||
border-color: #CE5019;
|
||||
}
|
||||
|
||||
.severity--critical {
|
||||
border-color: #AB1A1A;
|
||||
}
|
||||
|
||||
.card--vuln {
|
||||
padding-top: 4em;
|
||||
}
|
||||
|
||||
.card--vuln .label {
|
||||
left: 0;
|
||||
position: absolute;
|
||||
top: 1.1em;
|
||||
padding-left: 1.9em;
|
||||
padding-right: 1.9em;
|
||||
border-radius: 0 0.25rem 0.25rem 0;
|
||||
}
|
||||
|
||||
.card--vuln .card__section h2 {
|
||||
font-size: 22px;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
.card--vuln .card__section p {
|
||||
margin: 0 0 0.5em 0;
|
||||
}
|
||||
|
||||
.card--vuln .card__meta {
|
||||
padding: 0 0 0 1em;
|
||||
margin: 0;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
.card .card__meta__paths {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
.card--vuln .card__title {
|
||||
font-size: 28px;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.card--vuln .card__cta p {
|
||||
margin: 0;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.source-panel {
|
||||
clear: both;
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
padding: 0.5em 0;
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
|
||||
|
||||
</style>
|
||||
<style type="text/css">
|
||||
.metatable {
|
||||
text-size-adjust: 100%;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-box-direction: normal;
|
||||
color: inherit;
|
||||
font-feature-settings: "pnum";
|
||||
box-sizing: border-box;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
font: inherit;
|
||||
font-size: 100%;
|
||||
margin: 0;
|
||||
outline: none;
|
||||
padding: 0;
|
||||
text-align: left;
|
||||
text-decoration: none;
|
||||
vertical-align: baseline;
|
||||
z-index: auto;
|
||||
margin-top: 12px;
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
font-variant-numeric: tabular-nums;
|
||||
max-width: 51.75em;
|
||||
}
|
||||
|
||||
tbody {
|
||||
text-size-adjust: 100%;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-box-direction: normal;
|
||||
color: inherit;
|
||||
font-feature-settings: "pnum";
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
box-sizing: border-box;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
font: inherit;
|
||||
font-size: 100%;
|
||||
margin: 0;
|
||||
outline: none;
|
||||
padding: 0;
|
||||
text-align: left;
|
||||
text-decoration: none;
|
||||
vertical-align: baseline;
|
||||
z-index: auto;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.meta-row {
|
||||
text-size-adjust: 100%;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-box-direction: normal;
|
||||
color: inherit;
|
||||
font-feature-settings: "pnum";
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
box-sizing: border-box;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
font: inherit;
|
||||
font-size: 100%;
|
||||
outline: none;
|
||||
text-align: left;
|
||||
text-decoration: none;
|
||||
vertical-align: baseline;
|
||||
z-index: auto;
|
||||
display: flex;
|
||||
align-items: start;
|
||||
border-top: 1px solid #d3d3d9;
|
||||
padding: 8px 0 0 0;
|
||||
border-bottom: none;
|
||||
margin: 8px;
|
||||
width: 47.75%;
|
||||
}
|
||||
|
||||
.meta-row-label {
|
||||
text-size-adjust: 100%;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-box-direction: normal;
|
||||
font-feature-settings: "pnum";
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
color: #4c4a73;
|
||||
box-sizing: border-box;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
font: inherit;
|
||||
margin: 0;
|
||||
outline: none;
|
||||
text-decoration: none;
|
||||
z-index: auto;
|
||||
align-self: start;
|
||||
flex: 1;
|
||||
font-size: 1rem;
|
||||
line-height: 1.5rem;
|
||||
padding: 0;
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
text-transform: none;
|
||||
letter-spacing: 0;
|
||||
}
|
||||
|
||||
.meta-row-value {
|
||||
text-size-adjust: 100%;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-box-direction: normal;
|
||||
color: inherit;
|
||||
font-feature-settings: "pnum";
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
word-break: break-word;
|
||||
box-sizing: border-box;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
font: inherit;
|
||||
font-size: 100%;
|
||||
margin: 0;
|
||||
outline: none;
|
||||
padding: 0;
|
||||
text-align: right;
|
||||
text-decoration: none;
|
||||
vertical-align: baseline;
|
||||
z-index: auto;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body class="section-projects">
|
||||
<main class="layout-stacked">
|
||||
<div class="layout-stacked__header header">
|
||||
<header class="project__header">
|
||||
<div class="layout-container">
|
||||
<a class="brand" href="https://snyk.io" title="Snyk">
|
||||
<svg width="68px" height="35px" viewBox="0 0 68 35" version="1.1" xmlns="http://www.w3.org/2000/svg" role="img">
|
||||
<title>Snyk - Open Source Security</title>
|
||||
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g fill="#fff">
|
||||
<path d="M5.732,27.278 C3.445,27.278 1.589,26.885 0,26.124 L0.483,22.472 C2.163,23.296 4.056,23.689 5.643,23.689 C6.801,23.689 7.563,23.295 7.563,22.599 C7.563,20.594 0.333,21.076 0.333,15.839 C0.333,12.491 3.407,10.729 7.259,10.729 C9.179,10.729 11.161,11.249 12.444,11.704 L11.924,15.294 C10.577,14.774 8.747,14.291 7.222,14.291 C6.282,14.291 5.518,14.621 5.518,15.231 C5.518,17.208 12.903,16.815 12.903,21.925 C12.903,25.325 9.877,27.277 5.733,27.277 L5.732,27.278 Z M25.726,26.936 L25.726,17.894 C25.726,15.827 24.811,14.85 23.069,14.85 C22.219,14.85 21.329,15.09 20.719,15.46 L20.719,26.936 L15.352,26.936 L15.352,11.262 L20.602,10.83 L20.474,13.392 L20.652,13.392 C21.784,11.87 23.702,10.716 25.992,10.716 C28.736,10.716 31.112,12.416 31.112,16.436 L31.112,26.936 L25.724,26.936 L25.726,26.936 Z M61.175,26.936 L56.879,19.479 L56.446,19.479 L56.446,26.935 L51.082,26.935 L51.082,8.37 L56.447,0 L56.447,17.323 C57.515,16.017 61.112,11.059 61.112,11.059 L67.732,11.059 L61.454,17.689 L67.949,26.95 L61.175,26.95 L61.175,26.938 L61.175,26.936 Z M44.13,11.11 L41.93,18.262 C41.5,19.606 41.08,22.079 41.08,22.079 C41.08,22.079 40.75,19.516 40.292,18.172 L37.94,11.108 L31.928,11.108 L38.462,26.935 C37.572,29.04 36.199,30.815 34.369,30.815 C34.039,30.815 33.709,30.802 33.389,30.765 L31.255,34.061 C31.928,34.441 33.212,34.835 34.737,34.835 C38.703,34.835 41.359,31.627 43.215,26.885 L49.443,11.108 L44.132,11.108 L44.13,11.11 Z"></path>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</a>
|
||||
<div class="header-wrap">
|
||||
<h1 class="project__header__title">Snyk test report</h1>
|
||||
|
||||
<p class="timestamp">October 30th 2022, 12:28:32 am</p>
|
||||
</div>
|
||||
<div class="source-panel">
|
||||
<span>Scanned the following path:</span>
|
||||
<ul>
|
||||
<li class="paths">ghcr.io/dexidp/dex:v2.35.3-distroless/dexidp/dex (deb)</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="meta-counts">
|
||||
<div class="meta-count"><span>0</span> <span>known vulnerabilities</span></div>
|
||||
<div class="meta-count"><span>0 vulnerable dependency paths</span></div>
|
||||
<div class="meta-count"><span>3</span> <span>dependencies</span></div>
|
||||
</div><!-- .meta-counts -->
|
||||
</div><!-- .layout-container--short -->
|
||||
</header><!-- .project__header -->
|
||||
</div><!-- .layout-stacked__header -->
|
||||
<section class="layout-container">
|
||||
<table class="metatable">
|
||||
<tbody>
|
||||
<tr class="meta-row"><th class="meta-row-label">Project</th> <td class="meta-row-value">docker-image|ghcr.io/dexidp/dex</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Path</th> <td class="meta-row-value">ghcr.io/dexidp/dex:v2.35.3-distroless/dexidp/dex</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Package Manager</th> <td class="meta-row-value">deb</td></tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
<div class="layout-container" style="padding-top: 35px;">
|
||||
No known vulnerabilities detected.
|
||||
</div>
|
||||
</main><!-- .layout-stacked__content -->
|
||||
</body>
|
||||
|
||||
</html>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,492 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-us">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>Snyk test report</title>
|
||||
<meta name="description" content="0 known vulnerabilities found in 0 vulnerable dependency paths.">
|
||||
<base target="_blank">
|
||||
<link rel="icon" type="image/png" href="https://res.cloudinary.com/snyk/image/upload/v1468845142/favicon/favicon.png"
|
||||
sizes="194x194">
|
||||
<link rel="shortcut icon" href="https://res.cloudinary.com/snyk/image/upload/v1468845142/favicon/favicon.ico">
|
||||
<style type="text/css">
|
||||
|
||||
body {
|
||||
-moz-font-feature-settings: "pnum";
|
||||
-webkit-font-feature-settings: "pnum";
|
||||
font-variant-numeric: proportional-nums;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
font-feature-settings: "pnum";
|
||||
font-size: 100%;
|
||||
line-height: 1.5;
|
||||
min-height: 100vh;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background-color: #F5F5F5;
|
||||
font-family: 'Arial', 'Helvetica', Calibri, sans-serif;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
a,
|
||||
a:link,
|
||||
a:visited {
|
||||
border-bottom: 1px solid #4b45a9;
|
||||
text-decoration: none;
|
||||
color: #4b45a9;
|
||||
}
|
||||
|
||||
a:hover,
|
||||
a:focus,
|
||||
a:active {
|
||||
border-bottom: 1px solid #4b45a9;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: none;
|
||||
margin: 1em 0;
|
||||
border-top: 1px solid #c5c5c5;
|
||||
}
|
||||
|
||||
ul {
|
||||
padding: 0 1em;
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
code {
|
||||
background-color: #EEE;
|
||||
color: #333;
|
||||
padding: 0.25em 0.5em;
|
||||
border-radius: 0.25em;
|
||||
}
|
||||
|
||||
pre {
|
||||
background-color: #333;
|
||||
font-family: monospace;
|
||||
padding: 0.5em 1em 0.75em;
|
||||
border-radius: 0.25em;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
pre code {
|
||||
padding: 0;
|
||||
background-color: transparent;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
a code {
|
||||
border-radius: .125rem .125rem 0 0;
|
||||
padding-bottom: 0;
|
||||
color: #4b45a9;
|
||||
}
|
||||
|
||||
a[href^="http://"]:after,
|
||||
a[href^="https://"]:after {
|
||||
background-image: linear-gradient(transparent,transparent),url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20112%20109%22%3E%3Cg%20id%3D%22Page-1%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Cg%20id%3D%22link-external%22%3E%3Cg%20id%3D%22arrow%22%3E%3Cpath%20id%3D%22Line%22%20stroke%3D%22%234B45A9%22%20stroke-width%3D%2215%22%20d%3D%22M88.5%2021l-43%2042.5%22%20stroke-linecap%3D%22square%22%2F%3E%3Cpath%20id%3D%22Triangle%22%20fill%3D%22%234B45A9%22%20d%3D%22M111.2%200v50L61%200z%22%2F%3E%3C%2Fg%3E%3Cpath%20id%3D%22square%22%20fill%3D%22%234B45A9%22%20d%3D%22M66%2015H0v94h94V44L79%2059v35H15V30h36z%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
|
||||
background-repeat: no-repeat;
|
||||
background-size: .75rem;
|
||||
content: "";
|
||||
display: inline-block;
|
||||
height: .75rem;
|
||||
margin-left: .25rem;
|
||||
width: .75rem;
|
||||
}
|
||||
|
||||
|
||||
/* Layout */
|
||||
|
||||
[class*=layout-container] {
|
||||
margin: 0 auto;
|
||||
max-width: 71.25em;
|
||||
padding: 1.9em 1.3em;
|
||||
position: relative;
|
||||
}
|
||||
.layout-container--short {
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
max-width: 48.75em;
|
||||
}
|
||||
|
||||
.layout-container--short:after {
|
||||
display: block;
|
||||
content: "";
|
||||
clear: both;
|
||||
}
|
||||
|
||||
/* Header */
|
||||
|
||||
.header {
|
||||
padding-bottom: 1px;
|
||||
}
|
||||
|
||||
.paths {
|
||||
margin-left: 8px;
|
||||
}
|
||||
.header-wrap {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
padding-top: 2em;
|
||||
}
|
||||
.project__header {
|
||||
background-color: #4b45a9;
|
||||
color: #fff;
|
||||
margin-bottom: -1px;
|
||||
padding-top: 1em;
|
||||
padding-bottom: 0.25em;
|
||||
border-bottom: 2px solid #BBB;
|
||||
}
|
||||
|
||||
.project__header__title {
|
||||
overflow-wrap: break-word;
|
||||
word-wrap: break-word;
|
||||
word-break: break-all;
|
||||
margin-bottom: .1em;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.timestamp {
|
||||
float: right;
|
||||
clear: none;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.meta-counts {
|
||||
clear: both;
|
||||
display: block;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
margin: 0 0 1.5em;
|
||||
color: #fff;
|
||||
clear: both;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
.meta-count {
|
||||
display: block;
|
||||
flex-basis: 100%;
|
||||
margin: 0 1em 1em 0;
|
||||
float: left;
|
||||
padding-right: 1em;
|
||||
border-right: 2px solid #fff;
|
||||
}
|
||||
|
||||
.meta-count:last-child {
|
||||
border-right: 0;
|
||||
padding-right: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
/* Card */
|
||||
|
||||
.card {
|
||||
background-color: #fff;
|
||||
border: 1px solid #c5c5c5;
|
||||
border-radius: .25rem;
|
||||
margin: 0 0 2em 0;
|
||||
position: relative;
|
||||
min-height: 40px;
|
||||
padding: 1.5em;
|
||||
}
|
||||
|
||||
.card .label {
|
||||
background-color: #767676;
|
||||
border: 2px solid #767676;
|
||||
color: white;
|
||||
padding: 0.25rem 0.75rem;
|
||||
font-size: 0.875rem;
|
||||
text-transform: uppercase;
|
||||
display: inline-block;
|
||||
margin: 0;
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
|
||||
.card .label__text {
|
||||
vertical-align: text-top;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.card .label--critical {
|
||||
background-color: #AB1A1A;
|
||||
border-color: #AB1A1A;
|
||||
}
|
||||
|
||||
.card .label--high {
|
||||
background-color: #CE5019;
|
||||
border-color: #CE5019;
|
||||
}
|
||||
|
||||
.card .label--medium {
|
||||
background-color: #D68000;
|
||||
border-color: #D68000;
|
||||
}
|
||||
|
||||
.card .label--low {
|
||||
background-color: #88879E;
|
||||
border-color: #88879E;
|
||||
}
|
||||
|
||||
.severity--low {
|
||||
border-color: #88879E;
|
||||
}
|
||||
|
||||
.severity--medium {
|
||||
border-color: #D68000;
|
||||
}
|
||||
|
||||
.severity--high {
|
||||
border-color: #CE5019;
|
||||
}
|
||||
|
||||
.severity--critical {
|
||||
border-color: #AB1A1A;
|
||||
}
|
||||
|
||||
.card--vuln {
|
||||
padding-top: 4em;
|
||||
}
|
||||
|
||||
.card--vuln .label {
|
||||
left: 0;
|
||||
position: absolute;
|
||||
top: 1.1em;
|
||||
padding-left: 1.9em;
|
||||
padding-right: 1.9em;
|
||||
border-radius: 0 0.25rem 0.25rem 0;
|
||||
}
|
||||
|
||||
.card--vuln .card__section h2 {
|
||||
font-size: 22px;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
.card--vuln .card__section p {
|
||||
margin: 0 0 0.5em 0;
|
||||
}
|
||||
|
||||
.card--vuln .card__meta {
|
||||
padding: 0 0 0 1em;
|
||||
margin: 0;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
.card .card__meta__paths {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
.card--vuln .card__title {
|
||||
font-size: 28px;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.card--vuln .card__cta p {
|
||||
margin: 0;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.source-panel {
|
||||
clear: both;
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
padding: 0.5em 0;
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
|
||||
|
||||
</style>
|
||||
<style type="text/css">
|
||||
.metatable {
|
||||
text-size-adjust: 100%;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-box-direction: normal;
|
||||
color: inherit;
|
||||
font-feature-settings: "pnum";
|
||||
box-sizing: border-box;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
font: inherit;
|
||||
font-size: 100%;
|
||||
margin: 0;
|
||||
outline: none;
|
||||
padding: 0;
|
||||
text-align: left;
|
||||
text-decoration: none;
|
||||
vertical-align: baseline;
|
||||
z-index: auto;
|
||||
margin-top: 12px;
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
font-variant-numeric: tabular-nums;
|
||||
max-width: 51.75em;
|
||||
}
|
||||
|
||||
tbody {
|
||||
text-size-adjust: 100%;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-box-direction: normal;
|
||||
color: inherit;
|
||||
font-feature-settings: "pnum";
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
box-sizing: border-box;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
font: inherit;
|
||||
font-size: 100%;
|
||||
margin: 0;
|
||||
outline: none;
|
||||
padding: 0;
|
||||
text-align: left;
|
||||
text-decoration: none;
|
||||
vertical-align: baseline;
|
||||
z-index: auto;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.meta-row {
|
||||
text-size-adjust: 100%;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-box-direction: normal;
|
||||
color: inherit;
|
||||
font-feature-settings: "pnum";
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
box-sizing: border-box;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
font: inherit;
|
||||
font-size: 100%;
|
||||
outline: none;
|
||||
text-align: left;
|
||||
text-decoration: none;
|
||||
vertical-align: baseline;
|
||||
z-index: auto;
|
||||
display: flex;
|
||||
align-items: start;
|
||||
border-top: 1px solid #d3d3d9;
|
||||
padding: 8px 0 0 0;
|
||||
border-bottom: none;
|
||||
margin: 8px;
|
||||
width: 47.75%;
|
||||
}
|
||||
|
||||
.meta-row-label {
|
||||
text-size-adjust: 100%;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-box-direction: normal;
|
||||
font-feature-settings: "pnum";
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
color: #4c4a73;
|
||||
box-sizing: border-box;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
font: inherit;
|
||||
margin: 0;
|
||||
outline: none;
|
||||
text-decoration: none;
|
||||
z-index: auto;
|
||||
align-self: start;
|
||||
flex: 1;
|
||||
font-size: 1rem;
|
||||
line-height: 1.5rem;
|
||||
padding: 0;
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
text-transform: none;
|
||||
letter-spacing: 0;
|
||||
}
|
||||
|
||||
.meta-row-value {
|
||||
text-size-adjust: 100%;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-box-direction: normal;
|
||||
color: inherit;
|
||||
font-feature-settings: "pnum";
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
word-break: break-word;
|
||||
box-sizing: border-box;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
font: inherit;
|
||||
font-size: 100%;
|
||||
margin: 0;
|
||||
outline: none;
|
||||
padding: 0;
|
||||
text-align: right;
|
||||
text-decoration: none;
|
||||
vertical-align: baseline;
|
||||
z-index: auto;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body class="section-projects">
|
||||
<main class="layout-stacked">
|
||||
<div class="layout-stacked__header header">
|
||||
<header class="project__header">
|
||||
<div class="layout-container">
|
||||
<a class="brand" href="https://snyk.io" title="Snyk">
|
||||
<svg width="68px" height="35px" viewBox="0 0 68 35" version="1.1" xmlns="http://www.w3.org/2000/svg" role="img">
|
||||
<title>Snyk - Open Source Security</title>
|
||||
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g fill="#fff">
|
||||
<path d="M5.732,27.278 C3.445,27.278 1.589,26.885 0,26.124 L0.483,22.472 C2.163,23.296 4.056,23.689 5.643,23.689 C6.801,23.689 7.563,23.295 7.563,22.599 C7.563,20.594 0.333,21.076 0.333,15.839 C0.333,12.491 3.407,10.729 7.259,10.729 C9.179,10.729 11.161,11.249 12.444,11.704 L11.924,15.294 C10.577,14.774 8.747,14.291 7.222,14.291 C6.282,14.291 5.518,14.621 5.518,15.231 C5.518,17.208 12.903,16.815 12.903,21.925 C12.903,25.325 9.877,27.277 5.733,27.277 L5.732,27.278 Z M25.726,26.936 L25.726,17.894 C25.726,15.827 24.811,14.85 23.069,14.85 C22.219,14.85 21.329,15.09 20.719,15.46 L20.719,26.936 L15.352,26.936 L15.352,11.262 L20.602,10.83 L20.474,13.392 L20.652,13.392 C21.784,11.87 23.702,10.716 25.992,10.716 C28.736,10.716 31.112,12.416 31.112,16.436 L31.112,26.936 L25.724,26.936 L25.726,26.936 Z M61.175,26.936 L56.879,19.479 L56.446,19.479 L56.446,26.935 L51.082,26.935 L51.082,8.37 L56.447,0 L56.447,17.323 C57.515,16.017 61.112,11.059 61.112,11.059 L67.732,11.059 L61.454,17.689 L67.949,26.95 L61.175,26.95 L61.175,26.938 L61.175,26.936 Z M44.13,11.11 L41.93,18.262 C41.5,19.606 41.08,22.079 41.08,22.079 C41.08,22.079 40.75,19.516 40.292,18.172 L37.94,11.108 L31.928,11.108 L38.462,26.935 C37.572,29.04 36.199,30.815 34.369,30.815 C34.039,30.815 33.709,30.802 33.389,30.765 L31.255,34.061 C31.928,34.441 33.212,34.835 34.737,34.835 C38.703,34.835 41.359,31.627 43.215,26.885 L49.443,11.108 L44.132,11.108 L44.13,11.11 Z"></path>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</a>
|
||||
<div class="header-wrap">
|
||||
<h1 class="project__header__title">Snyk test report</h1>
|
||||
|
||||
<p class="timestamp">October 30th 2022, 12:25:32 am</p>
|
||||
</div>
|
||||
<div class="source-panel">
|
||||
<span>Scanned the following path:</span>
|
||||
<ul>
|
||||
<li class="paths">ghcr.io/dexidp/dex:v2.35.3-distroless/dexidp/dex (deb)</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="meta-counts">
|
||||
<div class="meta-count"><span>0</span> <span>known vulnerabilities</span></div>
|
||||
<div class="meta-count"><span>0 vulnerable dependency paths</span></div>
|
||||
<div class="meta-count"><span>3</span> <span>dependencies</span></div>
|
||||
</div><!-- .meta-counts -->
|
||||
</div><!-- .layout-container--short -->
|
||||
</header><!-- .project__header -->
|
||||
</div><!-- .layout-stacked__header -->
|
||||
<section class="layout-container">
|
||||
<table class="metatable">
|
||||
<tbody>
|
||||
<tr class="meta-row"><th class="meta-row-label">Project</th> <td class="meta-row-value">docker-image|ghcr.io/dexidp/dex</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Path</th> <td class="meta-row-value">ghcr.io/dexidp/dex:v2.35.3-distroless/dexidp/dex</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Package Manager</th> <td class="meta-row-value">deb</td></tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
<div class="layout-container" style="padding-top: 35px;">
|
||||
No known vulnerabilities detected.
|
||||
</div>
|
||||
</main><!-- .layout-stacked__content -->
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -456,12 +456,12 @@
|
||||
<div class="header-wrap">
|
||||
<h1 class="project__header__title">Snyk test report</h1>
|
||||
|
||||
<p class="timestamp">October 30th 2022, 12:27:23 am</p>
|
||||
<p class="timestamp">September 7th 2022, 7:38:25 pm</p>
|
||||
</div>
|
||||
<div class="source-panel">
|
||||
<span>Scanned the following path:</span>
|
||||
<ul>
|
||||
<li class="paths">/argo-cd/manifests/install.yaml (Kubernetes)</li>
|
||||
<li class="paths">/private/argo-cd/manifests/install.yaml (Kubernetes)</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -476,7 +476,7 @@
|
||||
<table class="metatable">
|
||||
<tbody>
|
||||
<tr class="meta-row"><th class="meta-row-label">Project</th> <td class="meta-row-value">manifests/install.yaml</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Path</th> <td class="meta-row-value">/argo-cd/manifests/install.yaml</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Path</th> <td class="meta-row-value">/private/argo-cd/manifests/install.yaml</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Project Type</th> <td class="meta-row-value">Kubernetes</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -1304,6 +1304,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 9172
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -1349,6 +1352,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 9211
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -1394,51 +1400,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<h2>Impact</h2>
|
||||
<p>Using this role grants dangerous permissions</p>
|
||||
|
||||
<h2>Remediation</h2>
|
||||
<p>Consider removing this permissions</p>
|
||||
|
||||
|
||||
<hr/>
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/security-rules/SNYK-CC-K8S-47">More about this issue</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Role with dangerous permissions</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Public ID: <a href="https://snyk.io/security-rules/SNYK-CC-K8S-47">SNYK-CC-K8S-47</a>
|
||||
Line number: 9272
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
[DocId: 12]
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
role
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
rules[3]
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
resources
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -1484,6 +1448,57 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 9291
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<h2>Impact</h2>
|
||||
<p>Using this role grants dangerous permissions</p>
|
||||
|
||||
<h2>Remediation</h2>
|
||||
<p>Consider removing this permissions</p>
|
||||
|
||||
|
||||
<hr/>
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/security-rules/SNYK-CC-K8S-47">More about this issue</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Role with dangerous permissions</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Public ID: <a href="https://snyk.io/security-rules/SNYK-CC-K8S-47">SNYK-CC-K8S-47</a>
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
[DocId: 12]
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
role
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
rules[3]
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
resources
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 9291
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -1529,6 +1544,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 9332
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -456,12 +456,12 @@
|
||||
<div class="header-wrap">
|
||||
<h1 class="project__header__title">Snyk test report</h1>
|
||||
|
||||
<p class="timestamp">October 30th 2022, 12:28:00 am</p>
|
||||
<p class="timestamp">September 7th 2022, 7:38:52 pm</p>
|
||||
</div>
|
||||
<div class="source-panel">
|
||||
<span>Scanned the following path:</span>
|
||||
<ul>
|
||||
<li class="paths">/argo-cd/manifests/namespace-install.yaml (Kubernetes)</li>
|
||||
<li class="paths">/private/argo-cd/manifests/namespace-install.yaml (Kubernetes)</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -476,7 +476,7 @@
|
||||
<table class="metatable">
|
||||
<tbody>
|
||||
<tr class="meta-row"><th class="meta-row-label">Project</th> <td class="meta-row-value">manifests/namespace-install.yaml</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Path</th> <td class="meta-row-value">/argo-cd/manifests/namespace-install.yaml</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Path</th> <td class="meta-row-value">/private/argo-cd/manifests/namespace-install.yaml</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Project Type</th> <td class="meta-row-value">Kubernetes</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -1304,6 +1304,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 6553
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -1349,6 +1352,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 6592
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -1394,51 +1400,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<h2>Impact</h2>
|
||||
<p>Using this role grants dangerous permissions</p>
|
||||
|
||||
<h2>Remediation</h2>
|
||||
<p>Consider removing this permissions</p>
|
||||
|
||||
|
||||
<hr/>
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/security-rules/SNYK-CC-K8S-47">More about this issue</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Role with dangerous permissions</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Public ID: <a href="https://snyk.io/security-rules/SNYK-CC-K8S-47">SNYK-CC-K8S-47</a>
|
||||
Line number: 6653
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
[DocId: 10]
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
role
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
rules[3]
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
resources
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -1484,6 +1448,57 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 6672
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<h2>Impact</h2>
|
||||
<p>Using this role grants dangerous permissions</p>
|
||||
|
||||
<h2>Remediation</h2>
|
||||
<p>Consider removing this permissions</p>
|
||||
|
||||
|
||||
<hr/>
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/security-rules/SNYK-CC-K8S-47">More about this issue</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Role with dangerous permissions</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Public ID: <a href="https://snyk.io/security-rules/SNYK-CC-K8S-47">SNYK-CC-K8S-47</a>
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
[DocId: 10]
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
role
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
rules[3]
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
resources
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 6672
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -1529,6 +1544,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 6713
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -7,7 +7,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>Snyk test report</title>
|
||||
<meta name="description" content="6 known vulnerabilities found in 11 vulnerable dependency paths.">
|
||||
<meta name="description" content="6 known vulnerabilities found in 12 vulnerable dependency paths.">
|
||||
<base target="_blank">
|
||||
<link rel="icon" type="image/png" href="https://res.cloudinary.com/snyk/image/upload/v1468845142/favicon/favicon.png"
|
||||
sizes="194x194">
|
||||
@@ -456,19 +456,19 @@
|
||||
<div class="header-wrap">
|
||||
<h1 class="project__header__title">Snyk test report</h1>
|
||||
|
||||
<p class="timestamp">October 30th 2022, 12:23:29 am</p>
|
||||
<p class="timestamp">September 7th 2022, 7:37:07 pm</p>
|
||||
</div>
|
||||
<div class="source-panel">
|
||||
<span>Scanned the following paths:</span>
|
||||
<ul>
|
||||
<li class="paths">/argo-cd/argoproj/argo-cd/v2 (gomodules)</li><li class="paths">/argo-cd (yarn)</li>
|
||||
<li class="paths">/private/argo-cd/argoproj/argo-cd/v2 (gomodules)</li><li class="paths">/private/argo-cd (yarn)</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="meta-counts">
|
||||
<div class="meta-count"><span>6</span> <span>known vulnerabilities</span></div>
|
||||
<div class="meta-count"><span>11 vulnerable dependency paths</span></div>
|
||||
<div class="meta-count"><span>1648</span> <span>dependencies</span></div>
|
||||
<div class="meta-count"><span>12 vulnerable dependency paths</span></div>
|
||||
<div class="meta-count"><span>1467</span> <span>dependencies</span></div>
|
||||
</div><!-- .meta-counts -->
|
||||
</div><!-- .layout-container--short -->
|
||||
</header><!-- .project__header -->
|
||||
@@ -476,188 +476,12 @@
|
||||
|
||||
<div class="layout-container" style="padding-top: 35px;">
|
||||
<div class="cards--vuln filter--patch filter--ignore">
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Server-side Request Forgery (SSRF)</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Package Manager: npm
|
||||
</li>
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
parse-url
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
|
||||
argo-cd-ui@1.0.0, git-url-parse@11.6.0 and others
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
<h3 class="card__section__title">Detailed paths</h3>
|
||||
|
||||
<ul class="card__meta__paths">
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
argo-cd-ui@1.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
git-url-parse@11.6.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
git-up@4.0.5
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
parse-url@6.0.5
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="overview">Overview</h2>
|
||||
<p><a href="https://www.npmjs.org/package/parse-url">parse-url</a> is an An advanced url parser supporting git urls too.</p>
|
||||
<p>Affected versions of this package are vulnerable to Server-side Request Forgery (SSRF) due to improper detection of protocol, resource, and pathname fields. Exploiting this vulnerability results in bypassing protocol verification.</p>
|
||||
<h2 id="poc">PoC:</h2>
|
||||
<pre><code class="language-js">import parseUrl from "parse-url";
|
||||
import fetch from 'node-fetch';
|
||||
var parsed=parseUrl("http://nnnn@localhost:808:/?id=xss")
|
||||
if(parsed.resource=="localhost"){
|
||||
console.log("internal network access is blocked")
|
||||
}
|
||||
else{
|
||||
const response = await fetch('http://'+parsed.resource+parsed.pathname);
|
||||
console.log(response)
|
||||
}
|
||||
</code></pre>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>parse-url</code> to version 8.1.0 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/IonicaBizau/parse-url/commit/881ecb46e39286b0c2b3c32fe61dca9377176884">GitHub Commit</a></li>
|
||||
<li><a href="https://github.com/IonicaBizau/parse-url/pull/55">GitHub PR</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-JS-PARSEURL-3023021">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Improper Input Validation</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Package Manager: npm
|
||||
</li>
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
parse-url
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
|
||||
argo-cd-ui@1.0.0, git-url-parse@11.6.0 and others
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
<h3 class="card__section__title">Detailed paths</h3>
|
||||
|
||||
<ul class="card__meta__paths">
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
argo-cd-ui@1.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
git-url-parse@11.6.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
git-up@4.0.5
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
parse-url@6.0.5
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="overview">Overview</h2>
|
||||
<p><a href="https://www.npmjs.org/package/parse-url">parse-url</a> is an An advanced url parser supporting git urls too.</p>
|
||||
<p>Affected versions of this package are vulnerable to Improper Input Validation due to incorrect parsing of URLs. This allows the attacker to craft a malformed URL which can lead to a phishing attack.</p>
|
||||
<pre><code class="language-js">
|
||||
const parseUrl = require("parse-url");
|
||||
const Url = require("url");
|
||||
|
||||
const express = require('express');
|
||||
const app = express();
|
||||
|
||||
var url = "https://www.google.com:x@fakesite.com:x";
|
||||
parsed = parseUrl(url);
|
||||
console.log("[*]`parse-url` output: ")
|
||||
console.log(parsed);
|
||||
|
||||
parsed2 = Url.parse(url);
|
||||
console.log("[*]`url` output: ")
|
||||
console.log(parsed2)
|
||||
|
||||
app.get('/', (req, res) => {
|
||||
if (parsed.host == "www.google.com") {
|
||||
res.send("<a href=\'" + parsed2.href + "\'>CLICK ME!</a>")
|
||||
}
|
||||
})
|
||||
|
||||
app.listen(8888,"0.0.0.0");
|
||||
</code></pre>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>parse-url</code> to version 8.1.0 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/IonicaBizau/parse-url/commit/881ecb46e39286b0c2b3c32fe61dca9377176884">GitHub Commit</a></li>
|
||||
<li><a href="https://github.com/IonicaBizau/parse-url/commit/9500430a3b9973bb1b5b2b9b319af2685ad272b3">GitHub Commit</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-JS-PARSEURL-3024398">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<div class="card card--vuln disclosure--not-new severity--high" data-snyk-test="high">
|
||||
<h2 class="card__title">Regular Expression Denial of Service (ReDoS)</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
<div class="label label--high">
|
||||
<span class="label__text">high severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
@@ -669,13 +493,13 @@
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
minimatch
|
||||
moment
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
|
||||
argo-cd-ui@1.0.0, redoc@2.0.0-rc.64 and others
|
||||
argo-cd-ui@1.0.0, argo-ui@1.0.0 and others
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -689,11 +513,50 @@
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
argo-cd-ui@1.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
redoc@2.0.0-rc.64
|
||||
argo-ui@1.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
@redocly/openapi-core@1.0.0-beta.82
|
||||
moment@2.29.1
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
argo-cd-ui@1.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
minimatch@3.0.4
|
||||
argo-ui@1.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
antd@4.18.3
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
moment@2.29.1
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
argo-cd-ui@1.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
argo-ui@1.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
moment-timezone@0.5.33
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
moment@2.29.1
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
argo-cd-ui@1.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
argo-ui@1.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
antd@4.18.3
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
rc-picker@2.5.19
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
moment@2.29.1
|
||||
|
||||
</span>
|
||||
|
||||
@@ -705,8 +568,11 @@
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="overview">Overview</h2>
|
||||
<p><a href="https://www.npmjs.com/package/minimatch">minimatch</a> is a minimal matching utility.</p>
|
||||
<p>Affected versions of this package are vulnerable to Regular Expression Denial of Service (ReDoS) via the <code>braceExpand</code> function in <code>minimatch.js</code>.</p>
|
||||
<p><a href="https://www.npmjs.com/package/moment">moment</a> is a lightweight JavaScript date library for parsing, validating, manipulating, and formatting dates.</p>
|
||||
<p>Affected versions of this package are vulnerable to Regular Expression Denial of Service (ReDoS) via the <code>preprocessRFC2822()</code> function in <code>from-string.js</code>, when processing a very long crafted string (over 10k characters).</p>
|
||||
<h2 id="poc">PoC:</h2>
|
||||
<pre><code class="language-js">moment("(".repeat(500000))
|
||||
</code></pre>
|
||||
<h2 id="details">Details</h2>
|
||||
<p>Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its original and legitimate users. There are many types of DoS attacks, ranging from trying to clog the network pipes to the system by generating a large volume of traffic from many machines (a Distributed Denial of Service - DDoS - attack) to sending crafted requests that cause a system to crash or take a disproportional amount of time to process.</p>
|
||||
<p>The Regular expression Denial of Service (ReDoS) is a type of Denial of Service attack. Regular expressions are incredibly powerful, but they aren't very intuitive and can ultimately end up making it easy for attackers to take your site down.</p>
|
||||
@@ -769,16 +635,160 @@
|
||||
</tbody></table>
|
||||
<p>By the time the string includes 14 C's, the engine has to take over 65,000 steps just to see if the string is valid. These extreme situations can cause them to work very slowly (exponentially related to input size, as shown above), allowing an attacker to exploit this and can cause the service to excessively consume CPU, resulting in a Denial of Service.</p>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>minimatch</code> to version 3.0.5 or higher.</p>
|
||||
<p>Upgrade <code>moment</code> to version 2.29.4 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/isaacs/minimatch/commit/a8763f4388e51956be62dc6025cec1126beeb5e6">GitHub Commit</a></li>
|
||||
<li><a href="https://github.com/moment/moment/commit/9a3b5894f3d5d602948ac8a02e4ee528a49ca3a3">GitHub Commit</a></li>
|
||||
<li><a href="https://github.com/moment/moment/issues/6012">GitHub Issue</a></li>
|
||||
<li><a href="https://github.com/moment/moment/pull/6015">GitHub PR</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-JS-MINIMATCH-3050818">More about this vulnerability</a></p>
|
||||
<p><a href="https://snyk.io/vuln/SNYK-JS-MOMENT-2944238">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Information Exposure</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Package Manager: npm
|
||||
</li>
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
node-fetch
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
|
||||
argo-cd-ui@1.0.0, argo-ui@1.0.0 and others
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
<h3 class="card__section__title">Detailed paths</h3>
|
||||
|
||||
<ul class="card__meta__paths">
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
argo-cd-ui@1.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
argo-ui@1.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
portable-fetch@3.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
node-fetch@1.7.3
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="overview">Overview</h2>
|
||||
<p><a href="https://www.npmjs.com/package/node-fetch">node-fetch</a> is a light-weight module that brings window.fetch to node.js</p>
|
||||
<p>Affected versions of this package are vulnerable to Information Exposure when fetching a remote url with Cookie, if it get a <code>Location</code> response header, it will follow that url and try to fetch that url with provided cookie. This can lead to forwarding secure headers to 3th party.</p>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>node-fetch</code> to version 2.6.7, 3.1.1 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/node-fetch/node-fetch/commit/1ef4b560a17e644a02a3bfdea7631ffeee578b35">Github Commit</a></li>
|
||||
<li><a href="https://github.com/node-fetch/node-fetch/commit/36e47e8a6406185921e4985dcbeff140d73eaa10">GitHub Commit</a></li>
|
||||
<li><a href="https://github.com/node-fetch/node-fetch/pull/1449/commits/5c32f002fdd65b1c6a8f1e3620210813d45c7e60">GitHub Commit</a></li>
|
||||
<li><a href="https://github.com/node-fetch/node-fetch/pull/1449">GitHub PR</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-JS-NODEFETCH-2342118">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Denial of Service</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Package Manager: npm
|
||||
</li>
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
node-fetch
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
|
||||
argo-cd-ui@1.0.0, argo-ui@1.0.0 and others
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
<h3 class="card__section__title">Detailed paths</h3>
|
||||
|
||||
<ul class="card__meta__paths">
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
argo-cd-ui@1.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
argo-ui@1.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
portable-fetch@3.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
node-fetch@1.7.3
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="overview">Overview</h2>
|
||||
<p><a href="https://www.npmjs.com/package/node-fetch">node-fetch</a> is a light-weight module that brings window.fetch to node.js</p>
|
||||
<p>Affected versions of this package are vulnerable to Denial of Service. Node Fetch did not honor the <code>size</code> option after following a redirect, which means that when a content size was over the limit, a FetchError would never get thrown and the process would end without failure.</p>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>node-fetch</code> to version 2.6.1, 3.0.0-beta.9 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/node-fetch/node-fetch/security/advisories/GHSA-w7rc-rwvf-8q5r">GitHub Advisory</a></li>
|
||||
<li><a href="https://github.com/node-fetch/node-fetch/commit/2358a6c2563d1730a0cdaccc197c611949f6a334">GitHub Commit</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-JS-NODEFETCH-674311">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
@@ -918,36 +928,6 @@
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
github.com/argoproj/argo-cd/v2@0.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
sigs.k8s.io/controller-runtime@0.11.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
sigs.k8s.io/controller-runtime/pkg/manager@0.11.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/prometheus/client_golang/prometheus/promhttp@1.11.0
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
github.com/argoproj/argo-cd/v2@0.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
sigs.k8s.io/controller-runtime@0.11.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
sigs.k8s.io/controller-runtime/pkg/manager@0.11.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
sigs.k8s.io/controller-runtime/pkg/webhook@0.11.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
sigs.k8s.io/controller-runtime/pkg/webhook/internal/metrics@0.11.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/prometheus/client_golang/prometheus/promhttp@1.11.0
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
@@ -1031,7 +1011,7 @@
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
|
||||
github.com/argoproj/argo-cd/v2@0.0.0, github.com/argoproj/notifications-engine/pkg/api@#567361917320 and others
|
||||
github.com/argoproj/argo-cd/v2@0.0.0, github.com/argoproj/notifications-engine/pkg/api@#91deed20b998 and others
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1045,9 +1025,9 @@
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
github.com/argoproj/argo-cd/v2@0.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/argoproj/notifications-engine/pkg/api@#567361917320
|
||||
github.com/argoproj/notifications-engine/pkg/api@#91deed20b998
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/argoproj/notifications-engine/pkg/templates@#567361917320
|
||||
github.com/argoproj/notifications-engine/pkg/templates@#91deed20b998
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/Masterminds/sprig@2.22.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
@@ -1060,11 +1040,11 @@
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
github.com/argoproj/argo-cd/v2@0.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/argoproj/notifications-engine/pkg/cmd@#567361917320
|
||||
github.com/argoproj/notifications-engine/pkg/cmd@#91deed20b998
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/argoproj/notifications-engine/pkg/api@#567361917320
|
||||
github.com/argoproj/notifications-engine/pkg/api@#91deed20b998
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/argoproj/notifications-engine/pkg/templates@#567361917320
|
||||
github.com/argoproj/notifications-engine/pkg/templates@#91deed20b998
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/Masterminds/sprig@2.22.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
@@ -1077,11 +1057,11 @@
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
github.com/argoproj/argo-cd/v2@0.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/argoproj/notifications-engine/pkg/controller@#567361917320
|
||||
github.com/argoproj/notifications-engine/pkg/controller@#91deed20b998
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/argoproj/notifications-engine/pkg/api@#567361917320
|
||||
github.com/argoproj/notifications-engine/pkg/api@#91deed20b998
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/argoproj/notifications-engine/pkg/templates@#567361917320
|
||||
github.com/argoproj/notifications-engine/pkg/templates@#91deed20b998
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/Masterminds/sprig@2.22.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
805
docs/snyk/v2.3.7/ghcr.io_dexidp_dex_v2.32.0.html
Normal file
805
docs/snyk/v2.3.7/ghcr.io_dexidp_dex_v2.32.0.html
Normal file
@@ -0,0 +1,805 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-us">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>Snyk test report</title>
|
||||
<meta name="description" content="3 known vulnerabilities found in 12 vulnerable dependency paths.">
|
||||
<base target="_blank">
|
||||
<link rel="icon" type="image/png" href="https://res.cloudinary.com/snyk/image/upload/v1468845142/favicon/favicon.png"
|
||||
sizes="194x194">
|
||||
<link rel="shortcut icon" href="https://res.cloudinary.com/snyk/image/upload/v1468845142/favicon/favicon.ico">
|
||||
<style type="text/css">
|
||||
|
||||
body {
|
||||
-moz-font-feature-settings: "pnum";
|
||||
-webkit-font-feature-settings: "pnum";
|
||||
font-variant-numeric: proportional-nums;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
font-feature-settings: "pnum";
|
||||
font-size: 100%;
|
||||
line-height: 1.5;
|
||||
min-height: 100vh;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background-color: #F5F5F5;
|
||||
font-family: 'Arial', 'Helvetica', Calibri, sans-serif;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
a,
|
||||
a:link,
|
||||
a:visited {
|
||||
border-bottom: 1px solid #4b45a9;
|
||||
text-decoration: none;
|
||||
color: #4b45a9;
|
||||
}
|
||||
|
||||
a:hover,
|
||||
a:focus,
|
||||
a:active {
|
||||
border-bottom: 1px solid #4b45a9;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: none;
|
||||
margin: 1em 0;
|
||||
border-top: 1px solid #c5c5c5;
|
||||
}
|
||||
|
||||
ul {
|
||||
padding: 0 1em;
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
code {
|
||||
background-color: #EEE;
|
||||
color: #333;
|
||||
padding: 0.25em 0.5em;
|
||||
border-radius: 0.25em;
|
||||
}
|
||||
|
||||
pre {
|
||||
background-color: #333;
|
||||
font-family: monospace;
|
||||
padding: 0.5em 1em 0.75em;
|
||||
border-radius: 0.25em;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
pre code {
|
||||
padding: 0;
|
||||
background-color: transparent;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
a code {
|
||||
border-radius: .125rem .125rem 0 0;
|
||||
padding-bottom: 0;
|
||||
color: #4b45a9;
|
||||
}
|
||||
|
||||
a[href^="http://"]:after,
|
||||
a[href^="https://"]:after {
|
||||
background-image: linear-gradient(transparent,transparent),url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20112%20109%22%3E%3Cg%20id%3D%22Page-1%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Cg%20id%3D%22link-external%22%3E%3Cg%20id%3D%22arrow%22%3E%3Cpath%20id%3D%22Line%22%20stroke%3D%22%234B45A9%22%20stroke-width%3D%2215%22%20d%3D%22M88.5%2021l-43%2042.5%22%20stroke-linecap%3D%22square%22%2F%3E%3Cpath%20id%3D%22Triangle%22%20fill%3D%22%234B45A9%22%20d%3D%22M111.2%200v50L61%200z%22%2F%3E%3C%2Fg%3E%3Cpath%20id%3D%22square%22%20fill%3D%22%234B45A9%22%20d%3D%22M66%2015H0v94h94V44L79%2059v35H15V30h36z%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
|
||||
background-repeat: no-repeat;
|
||||
background-size: .75rem;
|
||||
content: "";
|
||||
display: inline-block;
|
||||
height: .75rem;
|
||||
margin-left: .25rem;
|
||||
width: .75rem;
|
||||
}
|
||||
|
||||
|
||||
/* Layout */
|
||||
|
||||
[class*=layout-container] {
|
||||
margin: 0 auto;
|
||||
max-width: 71.25em;
|
||||
padding: 1.9em 1.3em;
|
||||
position: relative;
|
||||
}
|
||||
.layout-container--short {
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
max-width: 48.75em;
|
||||
}
|
||||
|
||||
.layout-container--short:after {
|
||||
display: block;
|
||||
content: "";
|
||||
clear: both;
|
||||
}
|
||||
|
||||
/* Header */
|
||||
|
||||
.header {
|
||||
padding-bottom: 1px;
|
||||
}
|
||||
|
||||
.paths {
|
||||
margin-left: 8px;
|
||||
}
|
||||
.header-wrap {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
padding-top: 2em;
|
||||
}
|
||||
.project__header {
|
||||
background-color: #4b45a9;
|
||||
color: #fff;
|
||||
margin-bottom: -1px;
|
||||
padding-top: 1em;
|
||||
padding-bottom: 0.25em;
|
||||
border-bottom: 2px solid #BBB;
|
||||
}
|
||||
|
||||
.project__header__title {
|
||||
overflow-wrap: break-word;
|
||||
word-wrap: break-word;
|
||||
word-break: break-all;
|
||||
margin-bottom: .1em;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.timestamp {
|
||||
float: right;
|
||||
clear: none;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.meta-counts {
|
||||
clear: both;
|
||||
display: block;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
margin: 0 0 1.5em;
|
||||
color: #fff;
|
||||
clear: both;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
.meta-count {
|
||||
display: block;
|
||||
flex-basis: 100%;
|
||||
margin: 0 1em 1em 0;
|
||||
float: left;
|
||||
padding-right: 1em;
|
||||
border-right: 2px solid #fff;
|
||||
}
|
||||
|
||||
.meta-count:last-child {
|
||||
border-right: 0;
|
||||
padding-right: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
/* Card */
|
||||
|
||||
.card {
|
||||
background-color: #fff;
|
||||
border: 1px solid #c5c5c5;
|
||||
border-radius: .25rem;
|
||||
margin: 0 0 2em 0;
|
||||
position: relative;
|
||||
min-height: 40px;
|
||||
padding: 1.5em;
|
||||
}
|
||||
|
||||
.card .label {
|
||||
background-color: #767676;
|
||||
border: 2px solid #767676;
|
||||
color: white;
|
||||
padding: 0.25rem 0.75rem;
|
||||
font-size: 0.875rem;
|
||||
text-transform: uppercase;
|
||||
display: inline-block;
|
||||
margin: 0;
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
|
||||
.card .label__text {
|
||||
vertical-align: text-top;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.card .label--critical {
|
||||
background-color: #AB1A1A;
|
||||
border-color: #AB1A1A;
|
||||
}
|
||||
|
||||
.card .label--high {
|
||||
background-color: #CE5019;
|
||||
border-color: #CE5019;
|
||||
}
|
||||
|
||||
.card .label--medium {
|
||||
background-color: #D68000;
|
||||
border-color: #D68000;
|
||||
}
|
||||
|
||||
.card .label--low {
|
||||
background-color: #88879E;
|
||||
border-color: #88879E;
|
||||
}
|
||||
|
||||
.severity--low {
|
||||
border-color: #88879E;
|
||||
}
|
||||
|
||||
.severity--medium {
|
||||
border-color: #D68000;
|
||||
}
|
||||
|
||||
.severity--high {
|
||||
border-color: #CE5019;
|
||||
}
|
||||
|
||||
.severity--critical {
|
||||
border-color: #AB1A1A;
|
||||
}
|
||||
|
||||
.card--vuln {
|
||||
padding-top: 4em;
|
||||
}
|
||||
|
||||
.card--vuln .label {
|
||||
left: 0;
|
||||
position: absolute;
|
||||
top: 1.1em;
|
||||
padding-left: 1.9em;
|
||||
padding-right: 1.9em;
|
||||
border-radius: 0 0.25rem 0.25rem 0;
|
||||
}
|
||||
|
||||
.card--vuln .card__section h2 {
|
||||
font-size: 22px;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
.card--vuln .card__section p {
|
||||
margin: 0 0 0.5em 0;
|
||||
}
|
||||
|
||||
.card--vuln .card__meta {
|
||||
padding: 0 0 0 1em;
|
||||
margin: 0;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
.card .card__meta__paths {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
.card--vuln .card__title {
|
||||
font-size: 28px;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.card--vuln .card__cta p {
|
||||
margin: 0;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.source-panel {
|
||||
clear: both;
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
padding: 0.5em 0;
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
|
||||
|
||||
</style>
|
||||
<style type="text/css">
|
||||
.metatable {
|
||||
text-size-adjust: 100%;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-box-direction: normal;
|
||||
color: inherit;
|
||||
font-feature-settings: "pnum";
|
||||
box-sizing: border-box;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
font: inherit;
|
||||
font-size: 100%;
|
||||
margin: 0;
|
||||
outline: none;
|
||||
padding: 0;
|
||||
text-align: left;
|
||||
text-decoration: none;
|
||||
vertical-align: baseline;
|
||||
z-index: auto;
|
||||
margin-top: 12px;
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
font-variant-numeric: tabular-nums;
|
||||
max-width: 51.75em;
|
||||
}
|
||||
|
||||
tbody {
|
||||
text-size-adjust: 100%;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-box-direction: normal;
|
||||
color: inherit;
|
||||
font-feature-settings: "pnum";
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
box-sizing: border-box;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
font: inherit;
|
||||
font-size: 100%;
|
||||
margin: 0;
|
||||
outline: none;
|
||||
padding: 0;
|
||||
text-align: left;
|
||||
text-decoration: none;
|
||||
vertical-align: baseline;
|
||||
z-index: auto;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.meta-row {
|
||||
text-size-adjust: 100%;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-box-direction: normal;
|
||||
color: inherit;
|
||||
font-feature-settings: "pnum";
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
box-sizing: border-box;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
font: inherit;
|
||||
font-size: 100%;
|
||||
outline: none;
|
||||
text-align: left;
|
||||
text-decoration: none;
|
||||
vertical-align: baseline;
|
||||
z-index: auto;
|
||||
display: flex;
|
||||
align-items: start;
|
||||
border-top: 1px solid #d3d3d9;
|
||||
padding: 8px 0 0 0;
|
||||
border-bottom: none;
|
||||
margin: 8px;
|
||||
width: 47.75%;
|
||||
}
|
||||
|
||||
.meta-row-label {
|
||||
text-size-adjust: 100%;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-box-direction: normal;
|
||||
font-feature-settings: "pnum";
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
color: #4c4a73;
|
||||
box-sizing: border-box;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
font: inherit;
|
||||
margin: 0;
|
||||
outline: none;
|
||||
text-decoration: none;
|
||||
z-index: auto;
|
||||
align-self: start;
|
||||
flex: 1;
|
||||
font-size: 1rem;
|
||||
line-height: 1.5rem;
|
||||
padding: 0;
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
text-transform: none;
|
||||
letter-spacing: 0;
|
||||
}
|
||||
|
||||
.meta-row-value {
|
||||
text-size-adjust: 100%;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-box-direction: normal;
|
||||
color: inherit;
|
||||
font-feature-settings: "pnum";
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
word-break: break-word;
|
||||
box-sizing: border-box;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
font: inherit;
|
||||
font-size: 100%;
|
||||
margin: 0;
|
||||
outline: none;
|
||||
padding: 0;
|
||||
text-align: right;
|
||||
text-decoration: none;
|
||||
vertical-align: baseline;
|
||||
z-index: auto;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body class="section-projects">
|
||||
<main class="layout-stacked">
|
||||
<div class="layout-stacked__header header">
|
||||
<header class="project__header">
|
||||
<div class="layout-container">
|
||||
<a class="brand" href="https://snyk.io" title="Snyk">
|
||||
<svg width="68px" height="35px" viewBox="0 0 68 35" version="1.1" xmlns="http://www.w3.org/2000/svg" role="img">
|
||||
<title>Snyk - Open Source Security</title>
|
||||
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g fill="#fff">
|
||||
<path d="M5.732,27.278 C3.445,27.278 1.589,26.885 0,26.124 L0.483,22.472 C2.163,23.296 4.056,23.689 5.643,23.689 C6.801,23.689 7.563,23.295 7.563,22.599 C7.563,20.594 0.333,21.076 0.333,15.839 C0.333,12.491 3.407,10.729 7.259,10.729 C9.179,10.729 11.161,11.249 12.444,11.704 L11.924,15.294 C10.577,14.774 8.747,14.291 7.222,14.291 C6.282,14.291 5.518,14.621 5.518,15.231 C5.518,17.208 12.903,16.815 12.903,21.925 C12.903,25.325 9.877,27.277 5.733,27.277 L5.732,27.278 Z M25.726,26.936 L25.726,17.894 C25.726,15.827 24.811,14.85 23.069,14.85 C22.219,14.85 21.329,15.09 20.719,15.46 L20.719,26.936 L15.352,26.936 L15.352,11.262 L20.602,10.83 L20.474,13.392 L20.652,13.392 C21.784,11.87 23.702,10.716 25.992,10.716 C28.736,10.716 31.112,12.416 31.112,16.436 L31.112,26.936 L25.724,26.936 L25.726,26.936 Z M61.175,26.936 L56.879,19.479 L56.446,19.479 L56.446,26.935 L51.082,26.935 L51.082,8.37 L56.447,0 L56.447,17.323 C57.515,16.017 61.112,11.059 61.112,11.059 L67.732,11.059 L61.454,17.689 L67.949,26.95 L61.175,26.95 L61.175,26.938 L61.175,26.936 Z M44.13,11.11 L41.93,18.262 C41.5,19.606 41.08,22.079 41.08,22.079 C41.08,22.079 40.75,19.516 40.292,18.172 L37.94,11.108 L31.928,11.108 L38.462,26.935 C37.572,29.04 36.199,30.815 34.369,30.815 C34.039,30.815 33.709,30.802 33.389,30.765 L31.255,34.061 C31.928,34.441 33.212,34.835 34.737,34.835 C38.703,34.835 41.359,31.627 43.215,26.885 L49.443,11.108 L44.132,11.108 L44.13,11.11 Z"></path>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</a>
|
||||
<div class="header-wrap">
|
||||
<h1 class="project__header__title">Snyk test report</h1>
|
||||
|
||||
<p class="timestamp">September 7th 2022, 7:37:12 pm</p>
|
||||
</div>
|
||||
<div class="source-panel">
|
||||
<span>Scanned the following path:</span>
|
||||
<ul>
|
||||
<li class="paths">ghcr.io/dexidp/dex:v2.32.0/dexidp/dex (apk)</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="meta-counts">
|
||||
<div class="meta-count"><span>3</span> <span>known vulnerabilities</span></div>
|
||||
<div class="meta-count"><span>12 vulnerable dependency paths</span></div>
|
||||
<div class="meta-count"><span>14</span> <span>dependencies</span></div>
|
||||
</div><!-- .meta-counts -->
|
||||
</div><!-- .layout-container--short -->
|
||||
</header><!-- .project__header -->
|
||||
</div><!-- .layout-stacked__header -->
|
||||
<section class="layout-container">
|
||||
<table class="metatable">
|
||||
<tbody>
|
||||
<tr class="meta-row"><th class="meta-row-label">Project</th> <td class="meta-row-value">docker-image|ghcr.io/dexidp/dex</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Path</th> <td class="meta-row-value">ghcr.io/dexidp/dex:v2.32.0/dexidp/dex</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Package Manager</th> <td class="meta-row-value">apk</td></tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
<div class="layout-container" style="padding-top: 35px;">
|
||||
<div class="cards--vuln filter--patch filter--ignore">
|
||||
<div class="card card--vuln disclosure--not-new severity--critical" data-snyk-test="critical">
|
||||
<h2 class="card__title">Out-of-bounds Write</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--critical">
|
||||
<span class="label__text">critical severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Package Manager: alpine:3.16
|
||||
</li>
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
zlib/zlib
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0 and zlib/zlib@1.2.12-r1
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
<h3 class="card__section__title">Detailed paths</h3>
|
||||
|
||||
<ul class="card__meta__paths">
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
zlib/zlib@1.2.12-r1
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
apk-tools/apk-tools@2.12.9-r3
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
zlib/zlib@1.2.12-r1
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="nvd-description">NVD Description</h2>
|
||||
<p><strong><em>Note:</em></strong> <em>Versions mentioned in the description apply to the upstream <code>zlib</code> package.</em>
|
||||
<em>See <code>How to fix?</code> for <code>Alpine:3.16</code> relevant versions.</em></p>
|
||||
<p>zlib through 1.2.12 has a heap-based buffer over-read or buffer overflow in inflate in inflate.c via a large gzip header extra field. NOTE: only applications that call inflateGetHeader are affected. Some common applications bundle the affected zlib source code but may be unable to call inflateGetHeader (e.g., see the nodejs/node reference).</p>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>Alpine:3.16</code> <code>zlib</code> to version 1.2.12-r2 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/nodejs/node/blob/75b68c6e4db515f76df73af476eccf382bbcb00a/deps/zlib/inflate.c#L762-L764">MISC</a></li>
|
||||
<li><a href="https://github.com/ivd38/zlib_overflow">MISC</a></li>
|
||||
<li><a href="https://github.com/madler/zlib/commit/eff308af425b67093bab25f80f1ae950166bece1">MISC</a></li>
|
||||
<li><a href="https://github.com/madler/zlib/blob/21767c654d31d2dccdde4330529775c6c5fd5389/zlib.h#L1062-L1063">MISC</a></li>
|
||||
<li><a href="http://www.openwall.com/lists/oss-security/2022/08/05/2">MLIST</a></li>
|
||||
<li><a href="https://github.com/curl/curl/issues/9271">MISC</a></li>
|
||||
<li><a href="http://www.openwall.com/lists/oss-security/2022/08/09/1">MLIST</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/YRQAI7H4M4RQZ2IWZUEEXECBE5D56BH2/">FEDORA</a></li>
|
||||
<li><a href="https://www.debian.org/security/2022/dsa-5218">DEBIAN</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/NMBOJ77A7T7PQCARMDUK75TE6LLESZ3O/">FEDORA</a></li>
|
||||
<li><a href="https://security.netapp.com/advisory/ntap-20220901-0005/">CONFIRM</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/JWN4VE3JQR4O2SOUS5TXNLANRPMHWV4I/">FEDORA</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-ALPINE316-ZLIB-2976176">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--high" data-snyk-test="high">
|
||||
<h2 class="card__title">Use After Free</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--high">
|
||||
<span class="label__text">high severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Package Manager: alpine:3.16
|
||||
</li>
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
busybox/busybox
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0 and busybox/busybox@1.35.0-r13
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
<h3 class="card__section__title">Detailed paths</h3>
|
||||
|
||||
<ul class="card__meta__paths">
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
busybox/busybox@1.35.0-r13
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
alpine-baselayout/alpine-baselayout-data@3.2.0-r20
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
alpine-baselayout/alpine-baselayout@3.2.0-r20
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
busybox/busybox@1.35.0-r13
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
busybox/ssl_client@1.35.0-r13
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="nvd-description">NVD Description</h2>
|
||||
<p><strong><em>Note:</em></strong> <em>Versions mentioned in the description apply to the upstream <code>busybox</code> package.</em>
|
||||
<em>See <code>How to fix?</code> for <code>Alpine:3.16</code> relevant versions.</em></p>
|
||||
<p>A use-after-free in Busybox 1.35-x's awk applet leads to denial of service and possibly code execution when processing a crafted awk pattern in the copyvar function.</p>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>Alpine:3.16</code> <code>busybox</code> to version 1.35.0-r15 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://bugs.busybox.net/show_bug.cgi?id=14781">MISC</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-ALPINE316-BUSYBOX-2953070">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Inadequate Encryption Strength</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Package Manager: alpine:3.16
|
||||
</li>
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
openssl/libcrypto1.1
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0 and openssl/libcrypto1.1@1.1.1o-r0
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
<h3 class="card__section__title">Detailed paths</h3>
|
||||
|
||||
<ul class="card__meta__paths">
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
openssl/libcrypto1.1@1.1.1o-r0
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
openssl/libssl1.1@1.1.1o-r0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
openssl/libcrypto1.1@1.1.1o-r0
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
apk-tools/apk-tools@2.12.9-r3
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
openssl/libcrypto1.1@1.1.1o-r0
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
busybox/ssl_client@1.35.0-r13
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
openssl/libcrypto1.1@1.1.1o-r0
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
openssl/libssl1.1@1.1.1o-r0
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
apk-tools/apk-tools@2.12.9-r3
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
openssl/libssl1.1@1.1.1o-r0
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
busybox/ssl_client@1.35.0-r13
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
openssl/libssl1.1@1.1.1o-r0
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="nvd-description">NVD Description</h2>
|
||||
<p><strong><em>Note:</em></strong> <em>Versions mentioned in the description apply to the upstream <code>openssl</code> package.</em>
|
||||
<em>See <code>How to fix?</code> for <code>Alpine:3.16</code> relevant versions.</em></p>
|
||||
<p>AES OCB mode for 32-bit x86 platforms using the AES-NI assembly optimised implementation will not encrypt the entirety of the data under some circumstances. This could reveal sixteen bytes of data that was preexisting in the memory that wasn't written. In the special case of "in place" encryption, sixteen bytes of the plaintext would be revealed. Since OpenSSL does not support OCB based cipher suites for TLS and DTLS, they are both unaffected. Fixed in OpenSSL 3.0.5 (Affected 3.0.0-3.0.4). Fixed in OpenSSL 1.1.1q (Affected 1.1.1-1.1.1p).</p>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>Alpine:3.16</code> <code>openssl</code> to version 1.1.1q-r0 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://www.openssl.org/news/secadv/20220705.txt">CONFIRM</a></li>
|
||||
<li><a href="https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=a98f339ddd7e8f487d6e0088d4a9a42324885a93">CONFIRM</a></li>
|
||||
<li><a href="https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=919925673d6c9cfed3c1085497f5dfbbed5fc431">CONFIRM</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/V6567JERRHHJW2GNGJGKDRNHR7SNPZK7/">FEDORA</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/R6CK57NBQFTPUMXAPJURCGXUYT76NQAK/">FEDORA</a></li>
|
||||
<li><a href="https://security.netapp.com/advisory/ntap-20220715-0011/">CONFIRM</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/VCMNWKERPBKOEBNL7CLTTX3ZZCZLH7XA/">FEDORA</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-ALPINE316-OPENSSL-2941806">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
</div><!-- cards -->
|
||||
</div>
|
||||
</main><!-- .layout-stacked__content -->
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -7,7 +7,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>Snyk test report</title>
|
||||
<meta name="description" content="0 known vulnerabilities found in 0 vulnerable dependency paths.">
|
||||
<meta name="description" content="1 known vulnerabilities found in 3 vulnerable dependency paths.">
|
||||
<base target="_blank">
|
||||
<link rel="icon" type="image/png" href="https://res.cloudinary.com/snyk/image/upload/v1468845142/favicon/favicon.png"
|
||||
sizes="194x194">
|
||||
@@ -456,7 +456,7 @@
|
||||
<div class="header-wrap">
|
||||
<h1 class="project__header__title">Snyk test report</h1>
|
||||
|
||||
<p class="timestamp">October 30th 2022, 12:25:35 am</p>
|
||||
<p class="timestamp">September 7th 2022, 7:37:16 pm</p>
|
||||
</div>
|
||||
<div class="source-panel">
|
||||
<span>Scanned the following path:</span>
|
||||
@@ -466,8 +466,8 @@
|
||||
</div>
|
||||
|
||||
<div class="meta-counts">
|
||||
<div class="meta-count"><span>0</span> <span>known vulnerabilities</span></div>
|
||||
<div class="meta-count"><span>0 vulnerable dependency paths</span></div>
|
||||
<div class="meta-count"><span>1</span> <span>known vulnerabilities</span></div>
|
||||
<div class="meta-count"><span>3 vulnerable dependency paths</span></div>
|
||||
<div class="meta-count"><span>17</span> <span>dependencies</span></div>
|
||||
</div><!-- .meta-counts -->
|
||||
</div><!-- .layout-container--short -->
|
||||
@@ -484,7 +484,107 @@
|
||||
</table>
|
||||
</section>
|
||||
<div class="layout-container" style="padding-top: 35px;">
|
||||
No known vulnerabilities detected.
|
||||
<div class="cards--vuln filter--patch filter--ignore">
|
||||
<div class="card card--vuln disclosure--not-new severity--critical" data-snyk-test="critical">
|
||||
<h2 class="card__title">Out-of-bounds Write</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--critical">
|
||||
<span class="label__text">critical severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Package Manager: alpine:3.16
|
||||
</li>
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
zlib/zlib
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
docker-image|haproxy@2.0.29-alpine and zlib/zlib@1.2.12-r1
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
<h3 class="card__section__title">Detailed paths</h3>
|
||||
|
||||
<ul class="card__meta__paths">
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|haproxy@2.0.29-alpine
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
zlib/zlib@1.2.12-r1
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|haproxy@2.0.29-alpine
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
.haproxy-rundeps@20220718.230945
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
zlib/zlib@1.2.12-r1
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|haproxy@2.0.29-alpine
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
apk-tools/apk-tools@2.12.9-r3
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
zlib/zlib@1.2.12-r1
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="nvd-description">NVD Description</h2>
|
||||
<p><strong><em>Note:</em></strong> <em>Versions mentioned in the description apply to the upstream <code>zlib</code> package.</em>
|
||||
<em>See <code>How to fix?</code> for <code>Alpine:3.16</code> relevant versions.</em></p>
|
||||
<p>zlib through 1.2.12 has a heap-based buffer over-read or buffer overflow in inflate in inflate.c via a large gzip header extra field. NOTE: only applications that call inflateGetHeader are affected. Some common applications bundle the affected zlib source code but may be unable to call inflateGetHeader (e.g., see the nodejs/node reference).</p>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>Alpine:3.16</code> <code>zlib</code> to version 1.2.12-r2 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/nodejs/node/blob/75b68c6e4db515f76df73af476eccf382bbcb00a/deps/zlib/inflate.c#L762-L764">MISC</a></li>
|
||||
<li><a href="https://github.com/ivd38/zlib_overflow">MISC</a></li>
|
||||
<li><a href="https://github.com/madler/zlib/commit/eff308af425b67093bab25f80f1ae950166bece1">MISC</a></li>
|
||||
<li><a href="https://github.com/madler/zlib/blob/21767c654d31d2dccdde4330529775c6c5fd5389/zlib.h#L1062-L1063">MISC</a></li>
|
||||
<li><a href="http://www.openwall.com/lists/oss-security/2022/08/05/2">MLIST</a></li>
|
||||
<li><a href="https://github.com/curl/curl/issues/9271">MISC</a></li>
|
||||
<li><a href="http://www.openwall.com/lists/oss-security/2022/08/09/1">MLIST</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/YRQAI7H4M4RQZ2IWZUEEXECBE5D56BH2/">FEDORA</a></li>
|
||||
<li><a href="https://www.debian.org/security/2022/dsa-5218">DEBIAN</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/NMBOJ77A7T7PQCARMDUK75TE6LLESZ3O/">FEDORA</a></li>
|
||||
<li><a href="https://security.netapp.com/advisory/ntap-20220901-0005/">CONFIRM</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/JWN4VE3JQR4O2SOUS5TXNLANRPMHWV4I/">FEDORA</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-ALPINE316-ZLIB-2976176">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
</div><!-- cards -->
|
||||
</div>
|
||||
</main><!-- .layout-stacked__content -->
|
||||
</body>
|
||||
@@ -456,7 +456,7 @@
|
||||
<div class="header-wrap">
|
||||
<h1 class="project__header__title">Snyk test report</h1>
|
||||
|
||||
<p class="timestamp">October 30th 2022, 12:25:50 am</p>
|
||||
<p class="timestamp">September 7th 2022, 7:37:26 pm</p>
|
||||
</div>
|
||||
<div class="source-panel">
|
||||
<span>Scanned the following path:</span>
|
||||
@@ -673,7 +673,6 @@
|
||||
<li><a href="http://packetstormsecurity.com/files/167344/OpenSSL-1.0.2-1.1.1-3.0-BN_mod_sqrt-Infinite-Loop.html">MISC</a></li>
|
||||
<li><a href="https://cert-portal.siemens.com/productcert/pdf/ssa-712929.pdf">CONFIRM</a></li>
|
||||
<li><a href="https://www.oracle.com/security-alerts/cpujul2022.html">N/A</a></li>
|
||||
<li><a href="https://security.gentoo.org/glsa/202210-02">GENTOO</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -752,7 +751,6 @@
|
||||
<li><a href="https://www.oracle.com/security-alerts/cpuapr2022.html">MISC</a></li>
|
||||
<li><a href="http://packetstormsecurity.com/files/167238/Zoom-XMPP-Stanza-Smuggling-Remote-Code-Execution.html">MISC</a></li>
|
||||
<li><a href="https://cert-portal.siemens.com/productcert/pdf/ssa-484086.pdf">CONFIRM</a></li>
|
||||
<li><a href="https://security.gentoo.org/glsa/202209-24">GENTOO</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -830,7 +828,6 @@
|
||||
<li><a href="https://lists.debian.org/debian-lts-announce/2022/03/msg00007.html">MLIST</a></li>
|
||||
<li><a href="https://www.oracle.com/security-alerts/cpuapr2022.html">MISC</a></li>
|
||||
<li><a href="https://cert-portal.siemens.com/productcert/pdf/ssa-484086.pdf">CONFIRM</a></li>
|
||||
<li><a href="https://security.gentoo.org/glsa/202209-24">GENTOO</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -938,7 +935,6 @@
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/H26R4SMGM3WHXX4XYNNJB4YGFIL5UNF4/">FEDORA</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/4FIXU75Q6RBNK6UYM7MQ3TCFGXR7AX4U/">FEDORA</a></li>
|
||||
<li><a href="https://www.oracle.com/security-alerts/cpujul2022.html">N/A</a></li>
|
||||
<li><a href="https://security.netapp.com/advisory/ntap-20221007-0003/">CONFIRM</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -1033,7 +1029,6 @@
|
||||
<li><a href="https://security.netapp.com/advisory/ntap-20220729-0004/">CONFIRM</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/JZZPTWRYQULAOL3AW7RZJNVZ2UONXCV4/">FEDORA</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/DCZFIJBJTZ7CL5QXBFKTQ22Q26VINRUF/">FEDORA</a></li>
|
||||
<li><a href="https://lists.debian.org/debian-lts-announce/2022/09/msg00023.html">MLIST</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -1044,7 +1039,7 @@
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Improper Input Validation</h2>
|
||||
<h2 class="card__title">CVE-2022-1271</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
@@ -1109,8 +1104,6 @@
|
||||
<li><a href="https://www.openwall.com/lists/oss-security/2022/04/07/8">MISC</a></li>
|
||||
<li><a href="https://git.tukaani.org/?p=xz.git;a=commit;h=69d1b3fc29677af8ade8dc15dba83f0589cb63d6">MISC</a></li>
|
||||
<li><a href="https://security-tracker.debian.org/tracker/CVE-2022-1271">MISC</a></li>
|
||||
<li><a href="https://security.gentoo.org/glsa/202209-01">GENTOO</a></li>
|
||||
<li><a href="https://security.netapp.com/advisory/ntap-20220930-0006/">CONFIRM</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -1982,7 +1975,6 @@
|
||||
<li><a href="https://psirt.global.sonicwall.com/vuln-detail/SNWLID-2022-0011">CONFIRM</a></li>
|
||||
<li><a href="https://www.oracle.com/security-alerts/cpujul2022.html">N/A</a></li>
|
||||
<li><a href="https://security.netapp.com/advisory/ntap-20220729-0004/">CONFIRM</a></li>
|
||||
<li><a href="https://security.gentoo.org/glsa/202210-02">GENTOO</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -2338,7 +2330,6 @@
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/R6CK57NBQFTPUMXAPJURCGXUYT76NQAK/">FEDORA</a></li>
|
||||
<li><a href="https://security.netapp.com/advisory/ntap-20220715-0011/">CONFIRM</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/VCMNWKERPBKOEBNL7CLTTX3ZZCZLH7XA/">FEDORA</a></li>
|
||||
<li><a href="https://security.gentoo.org/glsa/202210-02">GENTOO</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -2657,7 +2648,6 @@
|
||||
<li><a href="https://web.mit.edu/kerberos/advisories/">MISC</a></li>
|
||||
<li><a href="https://lists.debian.org/debian-lts-announce/2021/09/msg00019.html">MLIST</a></li>
|
||||
<li><a href="https://www.oracle.com/security-alerts/cpujul2022.html">N/A</a></li>
|
||||
<li><a href="https://www.starwindsoftware.com/security/sw-20220817-0004/">MISC</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -2668,7 +2658,7 @@
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Improper Input Validation</h2>
|
||||
<h2 class="card__title">CVE-2022-1271</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
@@ -2731,8 +2721,6 @@
|
||||
<li><a href="https://www.openwall.com/lists/oss-security/2022/04/07/8">MISC</a></li>
|
||||
<li><a href="https://git.tukaani.org/?p=xz.git;a=commit;h=69d1b3fc29677af8ade8dc15dba83f0589cb63d6">MISC</a></li>
|
||||
<li><a href="https://security-tracker.debian.org/tracker/CVE-2022-1271">MISC</a></li>
|
||||
<li><a href="https://security.gentoo.org/glsa/202209-01">GENTOO</a></li>
|
||||
<li><a href="https://security.netapp.com/advisory/ntap-20220930-0006/">CONFIRM</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -3196,7 +3184,6 @@
|
||||
<li><a href="https://sourceware.org/bugzilla/show_bug.cgi?id=28769">MISC</a></li>
|
||||
<li><a href="https://security-tracker.debian.org/tracker/CVE-2021-3999">MISC</a></li>
|
||||
<li><a href="https://bugzilla.redhat.com/show_bug.cgi?id=2024637">MISC</a></li>
|
||||
<li><a href="https://lists.debian.org/debian-lts-announce/2022/10/msg00021.html">MLIST</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -3207,7 +3194,7 @@
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Out-of-bounds Read</h2>
|
||||
<h2 class="card__title">Unchecked Return Value</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
@@ -3281,7 +3268,6 @@
|
||||
<li><a href="https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=ee8d5e33adb284601c00c94687bc907e10aec9bb">MISC</a></li>
|
||||
<li><a href="https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=84d2d0fe20bdf94feed82b21b4d7d136db471f03">MISC</a></li>
|
||||
<li><a href="https://bugzilla.redhat.com/show_bug.cgi?id=2024633">MISC</a></li>
|
||||
<li><a href="https://security.netapp.com/advisory/ntap-20221020-0003/">CONFIRM</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -3550,7 +3536,6 @@
|
||||
<li><a href="https://www.tenable.com/security/tns-2022-05">CONFIRM</a></li>
|
||||
<li><a href="https://www.debian.org/security/2022/dsa-5073">DEBIAN</a></li>
|
||||
<li><a href="https://cert-portal.siemens.com/productcert/pdf/ssa-484086.pdf">CONFIRM</a></li>
|
||||
<li><a href="https://security.gentoo.org/glsa/202209-24">GENTOO</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -3624,7 +3609,6 @@
|
||||
<li><a href="https://www.tenable.com/security/tns-2022-05">CONFIRM</a></li>
|
||||
<li><a href="https://www.debian.org/security/2022/dsa-5073">DEBIAN</a></li>
|
||||
<li><a href="https://cert-portal.siemens.com/productcert/pdf/ssa-484086.pdf">CONFIRM</a></li>
|
||||
<li><a href="https://security.gentoo.org/glsa/202209-24">GENTOO</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -3698,7 +3682,6 @@
|
||||
<li><a href="https://www.tenable.com/security/tns-2022-05">CONFIRM</a></li>
|
||||
<li><a href="https://www.debian.org/security/2022/dsa-5073">DEBIAN</a></li>
|
||||
<li><a href="https://cert-portal.siemens.com/productcert/pdf/ssa-484086.pdf">CONFIRM</a></li>
|
||||
<li><a href="https://security.gentoo.org/glsa/202209-24">GENTOO</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -3772,7 +3755,6 @@
|
||||
<li><a href="https://www.tenable.com/security/tns-2022-05">CONFIRM</a></li>
|
||||
<li><a href="https://www.debian.org/security/2022/dsa-5073">DEBIAN</a></li>
|
||||
<li><a href="https://cert-portal.siemens.com/productcert/pdf/ssa-484086.pdf">CONFIRM</a></li>
|
||||
<li><a href="https://security.gentoo.org/glsa/202209-24">GENTOO</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -3846,7 +3828,6 @@
|
||||
<li><a href="https://www.tenable.com/security/tns-2022-05">CONFIRM</a></li>
|
||||
<li><a href="https://www.debian.org/security/2022/dsa-5073">DEBIAN</a></li>
|
||||
<li><a href="https://cert-portal.siemens.com/productcert/pdf/ssa-484086.pdf">CONFIRM</a></li>
|
||||
<li><a href="https://security.gentoo.org/glsa/202209-24">GENTOO</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -3920,7 +3901,6 @@
|
||||
<li><a href="https://www.tenable.com/security/tns-2022-05">CONFIRM</a></li>
|
||||
<li><a href="https://www.debian.org/security/2022/dsa-5073">DEBIAN</a></li>
|
||||
<li><a href="https://cert-portal.siemens.com/productcert/pdf/ssa-484086.pdf">CONFIRM</a></li>
|
||||
<li><a href="https://security.gentoo.org/glsa/202209-24">GENTOO</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -3994,7 +3974,6 @@
|
||||
<li><a href="https://www.tenable.com/security/tns-2022-05">CONFIRM</a></li>
|
||||
<li><a href="https://www.debian.org/security/2022/dsa-5073">DEBIAN</a></li>
|
||||
<li><a href="https://cert-portal.siemens.com/productcert/pdf/ssa-484086.pdf">CONFIRM</a></li>
|
||||
<li><a href="https://security.gentoo.org/glsa/202209-24">GENTOO</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -4070,7 +4049,6 @@
|
||||
<li><a href="https://lists.debian.org/debian-lts-announce/2022/03/msg00007.html">MLIST</a></li>
|
||||
<li><a href="https://www.oracle.com/security-alerts/cpuapr2022.html">MISC</a></li>
|
||||
<li><a href="https://cert-portal.siemens.com/productcert/pdf/ssa-484086.pdf">CONFIRM</a></li>
|
||||
<li><a href="https://security.gentoo.org/glsa/202209-24">GENTOO</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -4146,7 +4124,6 @@
|
||||
<li><a href="https://www.debian.org/security/2022/dsa-5073">DEBIAN</a></li>
|
||||
<li><a href="https://www.oracle.com/security-alerts/cpuapr2022.html">MISC</a></li>
|
||||
<li><a href="https://cert-portal.siemens.com/productcert/pdf/ssa-484086.pdf">CONFIRM</a></li>
|
||||
<li><a href="https://security.gentoo.org/glsa/202209-24">GENTOO</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -4224,7 +4201,6 @@
|
||||
<li><a href="https://lists.debian.org/debian-lts-announce/2022/03/msg00007.html">MLIST</a></li>
|
||||
<li><a href="https://www.oracle.com/security-alerts/cpuapr2022.html">MISC</a></li>
|
||||
<li><a href="https://cert-portal.siemens.com/productcert/pdf/ssa-484086.pdf">CONFIRM</a></li>
|
||||
<li><a href="https://security.gentoo.org/glsa/202209-24">GENTOO</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -4301,7 +4277,6 @@
|
||||
<li><a href="https://security.netapp.com/advisory/ntap-20220303-0008/">CONFIRM</a></li>
|
||||
<li><a href="https://www.oracle.com/security-alerts/cpuapr2022.html">MISC</a></li>
|
||||
<li><a href="https://cert-portal.siemens.com/productcert/pdf/ssa-484086.pdf">CONFIRM</a></li>
|
||||
<li><a href="https://security.gentoo.org/glsa/202209-24">GENTOO</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -4379,7 +4354,6 @@
|
||||
<li><a href="https://lists.debian.org/debian-lts-announce/2022/03/msg00007.html">MLIST</a></li>
|
||||
<li><a href="https://www.oracle.com/security-alerts/cpuapr2022.html">MISC</a></li>
|
||||
<li><a href="https://cert-portal.siemens.com/productcert/pdf/ssa-484086.pdf">CONFIRM</a></li>
|
||||
<li><a href="https://security.gentoo.org/glsa/202209-24">GENTOO</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -4658,7 +4632,6 @@
|
||||
<li><a href="https://lists.debian.org/debian-lts-announce/2022/05/msg00033.html">MISC</a></li>
|
||||
<li><a href="https://git.dpkg.org/cgit/dpkg/dpkg.git/commit/?id=58814cacee39c4ce9e2cd0e3a3b9b57ad437eff5">MISC</a></li>
|
||||
<li><a href="https://git.dpkg.org/cgit/dpkg/dpkg.git/commit/?id=1f23dddc17f69c9598477098c7fb9936e15fa495">MISC</a></li>
|
||||
<li><a href="https://security.netapp.com/advisory/ntap-20221007-0002/">CONFIRM</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -4946,8 +4919,6 @@
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/BEV6BR4MTI3CEWK2YU2HQZUW5FAS3FEY/">FEDORA</a></li>
|
||||
<li><a href="https://www.debian.org/security/2022/dsa-5197">DEBIAN</a></li>
|
||||
<li><a href="https://lists.debian.org/debian-lts-announce/2022/08/msg00017.html">MLIST</a></li>
|
||||
<li><a href="https://security.netapp.com/advisory/ntap-20220915-0003/">CONFIRM</a></li>
|
||||
<li><a href="https://support.apple.com/kb/HT213488">CONFIRM</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -5019,8 +4990,6 @@
|
||||
<li><a href="https://hackerone.com/reports/1573634">MISC</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/BEV6BR4MTI3CEWK2YU2HQZUW5FAS3FEY/">FEDORA</a></li>
|
||||
<li><a href="https://www.debian.org/security/2022/dsa-5197">DEBIAN</a></li>
|
||||
<li><a href="https://security.netapp.com/advisory/ntap-20220915-0003/">CONFIRM</a></li>
|
||||
<li><a href="https://support.apple.com/kb/HT213488">CONFIRM</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -5093,8 +5062,6 @@
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/BEV6BR4MTI3CEWK2YU2HQZUW5FAS3FEY/">FEDORA</a></li>
|
||||
<li><a href="https://www.debian.org/security/2022/dsa-5197">DEBIAN</a></li>
|
||||
<li><a href="https://lists.debian.org/debian-lts-announce/2022/08/msg00017.html">MLIST</a></li>
|
||||
<li><a href="https://security.netapp.com/advisory/ntap-20220915-0003/">CONFIRM</a></li>
|
||||
<li><a href="https://support.apple.com/kb/HT213488">CONFIRM</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -5166,8 +5133,6 @@
|
||||
<li><a href="https://hackerone.com/reports/1569946">MISC</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/BEV6BR4MTI3CEWK2YU2HQZUW5FAS3FEY/">FEDORA</a></li>
|
||||
<li><a href="https://www.debian.org/security/2022/dsa-5197">DEBIAN</a></li>
|
||||
<li><a href="https://security.netapp.com/advisory/ntap-20220915-0003/">CONFIRM</a></li>
|
||||
<li><a href="https://support.apple.com/kb/HT213488">CONFIRM</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -5312,10 +5277,6 @@
|
||||
<li><a href="http://people.ubuntu.com/~ubuntu-security/cve/CVE-2021-36690">ADVISORY</a></li>
|
||||
<li><a href="https://www.sqlite.org/forum/forumpost/718c0a8d17">MISC</a></li>
|
||||
<li><a href="https://www.oracle.com/security-alerts/cpujan2022.html">N/A</a></li>
|
||||
<li><a href="https://support.apple.com/kb/HT213488">CONFIRM</a></li>
|
||||
<li><a href="https://support.apple.com/kb/HT213446">CONFIRM</a></li>
|
||||
<li><a href="https://support.apple.com/kb/HT213486">CONFIRM</a></li>
|
||||
<li><a href="https://support.apple.com/kb/HT213487">CONFIRM</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -5574,11 +5535,11 @@
|
||||
<p>There is no fixed version for <code>Ubuntu:21.10</code> <code>shadow</code>.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="http://people.ubuntu.com/~ubuntu-security/cve/CVE-2013-4235">ADVISORY</a></li>
|
||||
<li><a href="https://security-tracker.debian.org/tracker/CVE-2013-4235">Debian Security Tracker</a></li>
|
||||
<li><a href="https://lists.apache.org/thread.html/rf9fa47ab66495c78bb4120b0754dd9531ca2ff0430f6685ac9b07772@%3Cdev.mina.apache.org%3E">MLIST</a></li>
|
||||
<li><a href="https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2013-4235">RedHat Bugzilla Bug</a></li>
|
||||
<li><a href="https://access.redhat.com/security/cve/cve-2013-4235">RedHat CVE Database</a></li>
|
||||
<li><a href="http://people.ubuntu.com/~ubuntu-security/cve/CVE-2013-4235">Ubuntu CVE Tracker</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -5739,12 +5700,12 @@
|
||||
<p>There is no fixed version for <code>Ubuntu:21.10</code> <code>pcre3</code>.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="http://people.ubuntu.com/~ubuntu-security/cve/CVE-2017-11164">ADVISORY</a></li>
|
||||
<li><a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-11164">CVE Details</a></li>
|
||||
<li><a href="https://security-tracker.debian.org/tracker/CVE-2017-11164">Debian Security Tracker</a></li>
|
||||
<li><a href="https://lists.apache.org/thread.html/rf9fa47ab66495c78bb4120b0754dd9531ca2ff0430f6685ac9b07772@%3Cdev.mina.apache.org%3E">MLIST</a></li>
|
||||
<li><a href="http://openwall.com/lists/oss-security/2017/07/11/3">OSS security Advisory</a></li>
|
||||
<li><a href="http://www.securityfocus.com/bid/99575">Security Focus</a></li>
|
||||
<li><a href="http://people.ubuntu.com/~ubuntu-security/cve/CVE-2017-11164">Ubuntu CVE Tracker</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -5818,7 +5779,6 @@
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/KAX7767BCUFC7JMDGP7GOQ5GIZCAUGBB/">FEDORA</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/DWNG2NS3GINO6LQYUVC4BZLUQPJ3DYHA/">FEDORA</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/JXINO3KKI5DICQ45E2FKD6MKVMGJLEKJ/">FEDORA</a></li>
|
||||
<li><a href="https://security.netapp.com/advisory/ntap-20221028-0009/">CONFIRM</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -5893,7 +5853,6 @@
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/KAX7767BCUFC7JMDGP7GOQ5GIZCAUGBB/">FEDORA</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/DWNG2NS3GINO6LQYUVC4BZLUQPJ3DYHA/">FEDORA</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/JXINO3KKI5DICQ45E2FKD6MKVMGJLEKJ/">FEDORA</a></li>
|
||||
<li><a href="https://security.netapp.com/advisory/ntap-20221028-0009/">CONFIRM</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -5958,13 +5917,13 @@
|
||||
<p>There is no fixed version for <code>Ubuntu:21.10</code> <code>patch</code>.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="http://people.ubuntu.com/~ubuntu-security/cve/CVE-2018-6952">ADVISORY</a></li>
|
||||
<li><a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-6952">CVE Details</a></li>
|
||||
<li><a href="https://security-tracker.debian.org/tracker/CVE-2018-6952">Debian Security Tracker</a></li>
|
||||
<li><a href="https://security.gentoo.org/glsa/201904-17">Gentoo Security Advisory</a></li>
|
||||
<li><a href="https://savannah.gnu.org/bugs/index.php?53133">MISC</a></li>
|
||||
<li><a href="https://access.redhat.com/errata/RHSA-2019:2033">REDHAT</a></li>
|
||||
<li><a href="http://www.securityfocus.com/bid/103047">Security Focus</a></li>
|
||||
<li><a href="http://people.ubuntu.com/~ubuntu-security/cve/CVE-2018-6952">Ubuntu CVE Tracker</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -6106,7 +6065,6 @@
|
||||
<li><a href="https://www.openwall.com/lists/oss-security/2021/09/26/1">MISC</a></li>
|
||||
<li><a href="https://www.oracle.com/security-alerts/cpuapr2022.html">MISC</a></li>
|
||||
<li><a href="https://www.oracle.com/security-alerts/cpujul2022.html">N/A</a></li>
|
||||
<li><a href="https://www.starwindsoftware.com/security/sw-20220805-0001/">MISC</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -6440,7 +6398,6 @@
|
||||
<li><a href="http://people.ubuntu.com/~ubuntu-security/cve/CVE-2022-29458">ADVISORY</a></li>
|
||||
<li><a href="https://lists.gnu.org/archive/html/bug-ncurses/2022-04/msg00016.html">MISC</a></li>
|
||||
<li><a href="https://lists.gnu.org/archive/html/bug-ncurses/2022-04/msg00014.html">MISC</a></li>
|
||||
<li><a href="https://support.apple.com/kb/HT213488">CONFIRM</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -7127,8 +7084,6 @@
|
||||
<li><a href="https://gmplib.org/list-archives/gmp-bugs/2021-September/005077.html">MISC</a></li>
|
||||
<li><a href="https://gmplib.org/repo/gmp-6.2/rev/561a9c25298e">MISC</a></li>
|
||||
<li><a href="https://lists.debian.org/debian-lts-announce/2021/12/msg00001.html">MLIST</a></li>
|
||||
<li><a href="http://www.openwall.com/lists/oss-security/2022/10/13/3">MLIST</a></li>
|
||||
<li><a href="http://seclists.org/fulldisclosure/2022/Oct/8">FULLDISC</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -7209,7 +7164,6 @@
|
||||
<li><a href="https://sourceware.org/bugzilla/show_bug.cgi?id=22542">MISC</a></li>
|
||||
<li><a href="https://www.oracle.com/security-alerts/cpujul2022.html">N/A</a></li>
|
||||
<li><a href="https://security.gentoo.org/glsa/202208-24">GENTOO</a></li>
|
||||
<li><a href="https://lists.debian.org/debian-lts-announce/2022/10/msg00021.html">MLIST</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -7290,7 +7244,6 @@
|
||||
<li><a href="https://sourceware.org/bugzilla/show_bug.cgi?id=28768">MISC</a></li>
|
||||
<li><a href="https://www.oracle.com/security-alerts/cpujul2022.html">N/A</a></li>
|
||||
<li><a href="https://security.gentoo.org/glsa/202208-24">GENTOO</a></li>
|
||||
<li><a href="https://lists.debian.org/debian-lts-announce/2022/10/msg00021.html">MLIST</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -7456,9 +7409,9 @@
|
||||
<p>There is no fixed version for <code>Ubuntu:21.10</code> <code>git</code>.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="http://people.ubuntu.com/~ubuntu-security/cve/CVE-2018-1000021">ADVISORY</a></li>
|
||||
<li><a href="https://security-tracker.debian.org/tracker/CVE-2018-1000021">Debian Security Tracker</a></li>
|
||||
<li><a href="http://www.batterystapl.es/2018/01/security-implications-of-ansi-escape.html">http://www.batterystapl.es/2018/01/security-implications-of-ansi-escape.html</a></li>
|
||||
<li><a href="http://people.ubuntu.com/~ubuntu-security/cve/CVE-2018-1000021">Ubuntu CVE Tracker</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -7535,7 +7488,6 @@
|
||||
<li><a href="https://www.tenable.com/security/tns-2022-05">CONFIRM</a></li>
|
||||
<li><a href="https://www.debian.org/security/2022/dsa-5073">DEBIAN</a></li>
|
||||
<li><a href="https://cert-portal.siemens.com/productcert/pdf/ssa-484086.pdf">CONFIRM</a></li>
|
||||
<li><a href="https://security.gentoo.org/glsa/202209-24">GENTOO</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -7679,8 +7631,6 @@
|
||||
<li><a href="https://security.netapp.com/advisory/ntap-20220609-0008/">CONFIRM</a></li>
|
||||
<li><a href="https://www.debian.org/security/2022/dsa-5197">DEBIAN</a></li>
|
||||
<li><a href="https://lists.debian.org/debian-lts-announce/2022/08/msg00017.html">MLIST</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/7N5ZBWLNNPZKFK7Q4KEHGCJ2YELQEUJP/">FEDORA</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/DKKOQXPYLMBSEVDHFS32BPBR3ZQJKY5B/">FEDORA</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -7817,11 +7767,11 @@
|
||||
<p>There is no fixed version for <code>Ubuntu:21.10</code> <code>coreutils</code>.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="http://people.ubuntu.com/~ubuntu-security/cve/CVE-2016-2781">ADVISORY</a></li>
|
||||
<li><a href="https://security-tracker.debian.org/tracker/CVE-2016-2781">Debian Security Tracker</a></li>
|
||||
<li><a href="https://lists.apache.org/thread.html/rf9fa47ab66495c78bb4120b0754dd9531ca2ff0430f6685ac9b07772@%3Cdev.mina.apache.org%3E">MLIST</a></li>
|
||||
<li><a href="http://www.openwall.com/lists/oss-security/2016/02/28/2">OSS security Advisory</a></li>
|
||||
<li><a href="http://www.openwall.com/lists/oss-security/2016/02/28/3">OSS security Advisory</a></li>
|
||||
<li><a href="http://people.ubuntu.com/~ubuntu-security/cve/CVE-2016-2781">Ubuntu CVE Tracker</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>Snyk test report</title>
|
||||
<meta name="description" content="0 known vulnerabilities found in 0 vulnerable dependency paths.">
|
||||
<meta name="description" content="1 known vulnerabilities found in 2 vulnerable dependency paths.">
|
||||
<base target="_blank">
|
||||
<link rel="icon" type="image/png" href="https://res.cloudinary.com/snyk/image/upload/v1468845142/favicon/favicon.png"
|
||||
sizes="194x194">
|
||||
@@ -456,18 +456,18 @@
|
||||
<div class="header-wrap">
|
||||
<h1 class="project__header__title">Snyk test report</h1>
|
||||
|
||||
<p class="timestamp">October 30th 2022, 12:19:59 am</p>
|
||||
<p class="timestamp">September 7th 2022, 7:37:46 pm</p>
|
||||
</div>
|
||||
<div class="source-panel">
|
||||
<span>Scanned the following path:</span>
|
||||
<ul>
|
||||
<li class="paths">redis:7.0.5-alpine (apk)</li>
|
||||
<li class="paths">redis:6.2.7-alpine (apk)</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="meta-counts">
|
||||
<div class="meta-count"><span>0</span> <span>known vulnerabilities</span></div>
|
||||
<div class="meta-count"><span>0 vulnerable dependency paths</span></div>
|
||||
<div class="meta-count"><span>1</span> <span>known vulnerabilities</span></div>
|
||||
<div class="meta-count"><span>2 vulnerable dependency paths</span></div>
|
||||
<div class="meta-count"><span>17</span> <span>dependencies</span></div>
|
||||
</div><!-- .meta-counts -->
|
||||
</div><!-- .layout-container--short -->
|
||||
@@ -477,14 +477,103 @@
|
||||
<table class="metatable">
|
||||
<tbody>
|
||||
<tr class="meta-row"><th class="meta-row-label">Project</th> <td class="meta-row-value">docker-image|redis</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Path</th> <td class="meta-row-value">redis:7.0.5-alpine</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Path</th> <td class="meta-row-value">redis:6.2.7-alpine</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Package Manager</th> <td class="meta-row-value">apk</td></tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
<div class="layout-container" style="padding-top: 35px;">
|
||||
No known vulnerabilities detected.
|
||||
<div class="cards--vuln filter--patch filter--ignore">
|
||||
<div class="card card--vuln disclosure--not-new severity--critical" data-snyk-test="critical">
|
||||
<h2 class="card__title">Out-of-bounds Write</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--critical">
|
||||
<span class="label__text">critical severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Package Manager: alpine:3.16
|
||||
</li>
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
zlib/zlib
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
docker-image|redis@6.2.7-alpine and zlib/zlib@1.2.12-r1
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
<h3 class="card__section__title">Detailed paths</h3>
|
||||
|
||||
<ul class="card__meta__paths">
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|redis@6.2.7-alpine
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
zlib/zlib@1.2.12-r1
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|redis@6.2.7-alpine
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
apk-tools/apk-tools@2.12.9-r3
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
zlib/zlib@1.2.12-r1
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="nvd-description">NVD Description</h2>
|
||||
<p><strong><em>Note:</em></strong> <em>Versions mentioned in the description apply to the upstream <code>zlib</code> package.</em>
|
||||
<em>See <code>How to fix?</code> for <code>Alpine:3.16</code> relevant versions.</em></p>
|
||||
<p>zlib through 1.2.12 has a heap-based buffer over-read or buffer overflow in inflate in inflate.c via a large gzip header extra field. NOTE: only applications that call inflateGetHeader are affected. Some common applications bundle the affected zlib source code but may be unable to call inflateGetHeader (e.g., see the nodejs/node reference).</p>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>Alpine:3.16</code> <code>zlib</code> to version 1.2.12-r2 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/nodejs/node/blob/75b68c6e4db515f76df73af476eccf382bbcb00a/deps/zlib/inflate.c#L762-L764">MISC</a></li>
|
||||
<li><a href="https://github.com/ivd38/zlib_overflow">MISC</a></li>
|
||||
<li><a href="https://github.com/madler/zlib/commit/eff308af425b67093bab25f80f1ae950166bece1">MISC</a></li>
|
||||
<li><a href="https://github.com/madler/zlib/blob/21767c654d31d2dccdde4330529775c6c5fd5389/zlib.h#L1062-L1063">MISC</a></li>
|
||||
<li><a href="http://www.openwall.com/lists/oss-security/2022/08/05/2">MLIST</a></li>
|
||||
<li><a href="https://github.com/curl/curl/issues/9271">MISC</a></li>
|
||||
<li><a href="http://www.openwall.com/lists/oss-security/2022/08/09/1">MLIST</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/YRQAI7H4M4RQZ2IWZUEEXECBE5D56BH2/">FEDORA</a></li>
|
||||
<li><a href="https://www.debian.org/security/2022/dsa-5218">DEBIAN</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/NMBOJ77A7T7PQCARMDUK75TE6LLESZ3O/">FEDORA</a></li>
|
||||
<li><a href="https://security.netapp.com/advisory/ntap-20220901-0005/">CONFIRM</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/JWN4VE3JQR4O2SOUS5TXNLANRPMHWV4I/">FEDORA</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-ALPINE316-ZLIB-2976176">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
</div><!-- cards -->
|
||||
</div>
|
||||
</main><!-- .layout-stacked__content -->
|
||||
</body>
|
||||
@@ -456,12 +456,12 @@
|
||||
<div class="header-wrap">
|
||||
<h1 class="project__header__title">Snyk test report</h1>
|
||||
|
||||
<p class="timestamp">October 30th 2022, 12:22:59 am</p>
|
||||
<p class="timestamp">September 7th 2022, 7:36:46 pm</p>
|
||||
</div>
|
||||
<div class="source-panel">
|
||||
<span>Scanned the following path:</span>
|
||||
<ul>
|
||||
<li class="paths">/argo-cd/manifests/install.yaml (Kubernetes)</li>
|
||||
<li class="paths">/private/argo-cd/manifests/install.yaml (Kubernetes)</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -476,7 +476,7 @@
|
||||
<table class="metatable">
|
||||
<tbody>
|
||||
<tr class="meta-row"><th class="meta-row-label">Project</th> <td class="meta-row-value">manifests/install.yaml</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Path</th> <td class="meta-row-value">/argo-cd/manifests/install.yaml</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Path</th> <td class="meta-row-value">/private/argo-cd/manifests/install.yaml</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Project Type</th> <td class="meta-row-value">Kubernetes</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -508,6 +508,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 9052
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -553,6 +556,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 9091
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -598,51 +604,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<h2>Impact</h2>
|
||||
<p>Using this role grants dangerous permissions</p>
|
||||
|
||||
<h2>Remediation</h2>
|
||||
<p>Consider removing this permissions</p>
|
||||
|
||||
|
||||
<hr/>
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/security-rules/SNYK-CC-K8S-47">More about this issue</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Role with dangerous permissions</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Public ID: <a href="https://snyk.io/security-rules/SNYK-CC-K8S-47">SNYK-CC-K8S-47</a>
|
||||
Line number: 9157
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
[DocId: 13]
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
role
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
rules[3]
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
resources
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -688,6 +652,57 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 9176
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<h2>Impact</h2>
|
||||
<p>Using this role grants dangerous permissions</p>
|
||||
|
||||
<h2>Remediation</h2>
|
||||
<p>Consider removing this permissions</p>
|
||||
|
||||
|
||||
<hr/>
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/security-rules/SNYK-CC-K8S-47">More about this issue</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Role with dangerous permissions</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Public ID: <a href="https://snyk.io/security-rules/SNYK-CC-K8S-47">SNYK-CC-K8S-47</a>
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
[DocId: 13]
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
role
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
rules[3]
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
resources
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 9176
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -733,6 +748,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 9217
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -783,7 +801,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10420
|
||||
Line number: 10101
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -841,7 +859,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 9950
|
||||
Line number: 9687
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -899,7 +917,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10063
|
||||
Line number: 9787
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -957,7 +975,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10029
|
||||
Line number: 9764
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1015,7 +1033,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10119
|
||||
Line number: 9830
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1073,7 +1091,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10193
|
||||
Line number: 9902
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1131,7 +1149,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10420
|
||||
Line number: 10101
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1189,7 +1207,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10249
|
||||
Line number: 9956
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1247,7 +1265,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10505
|
||||
Line number: 10184
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1305,7 +1323,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10802
|
||||
Line number: 10444
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1357,7 +1375,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10043
|
||||
Line number: 9771
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1413,7 +1431,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10203
|
||||
Line number: 9912
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1465,7 +1483,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 9950
|
||||
Line number: 9687
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1517,7 +1535,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10029
|
||||
Line number: 9764
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1569,7 +1587,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10063
|
||||
Line number: 9787
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1621,7 +1639,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10193
|
||||
Line number: 9902
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1673,7 +1691,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10420
|
||||
Line number: 10101
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1731,7 +1749,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 9950
|
||||
Line number: 9687
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1789,7 +1807,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10029
|
||||
Line number: 9764
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1847,7 +1865,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10063
|
||||
Line number: 9787
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1905,7 +1923,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10119
|
||||
Line number: 9830
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1963,7 +1981,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10193
|
||||
Line number: 9902
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -2021,7 +2039,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10420
|
||||
Line number: 10101
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -2079,7 +2097,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10249
|
||||
Line number: 9956
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -2137,7 +2155,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10505
|
||||
Line number: 10184
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -2195,7 +2213,7 @@
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 10802
|
||||
Line number: 10444
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -456,12 +456,12 @@
|
||||
<div class="header-wrap">
|
||||
<h1 class="project__header__title">Snyk test report</h1>
|
||||
|
||||
<p class="timestamp">October 30th 2022, 12:25:13 am</p>
|
||||
<p class="timestamp">September 7th 2022, 7:36:55 pm</p>
|
||||
</div>
|
||||
<div class="source-panel">
|
||||
<span>Scanned the following path:</span>
|
||||
<ul>
|
||||
<li class="paths">/argo-cd/manifests/namespace-install.yaml (Kubernetes)</li>
|
||||
<li class="paths">/private/argo-cd/manifests/namespace-install.yaml (Kubernetes)</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -476,7 +476,7 @@
|
||||
<table class="metatable">
|
||||
<tbody>
|
||||
<tr class="meta-row"><th class="meta-row-label">Project</th> <td class="meta-row-value">manifests/namespace-install.yaml</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Path</th> <td class="meta-row-value">/argo-cd/manifests/namespace-install.yaml</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Path</th> <td class="meta-row-value">/private/argo-cd/manifests/namespace-install.yaml</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Project Type</th> <td class="meta-row-value">Kubernetes</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -508,6 +508,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 61
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -553,6 +556,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 100
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -598,51 +604,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<h2>Impact</h2>
|
||||
<p>Using this role grants dangerous permissions</p>
|
||||
|
||||
<h2>Remediation</h2>
|
||||
<p>Consider removing this permissions</p>
|
||||
|
||||
|
||||
<hr/>
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/security-rules/SNYK-CC-K8S-47">More about this issue</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Role with dangerous permissions</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Public ID: <a href="https://snyk.io/security-rules/SNYK-CC-K8S-47">SNYK-CC-K8S-47</a>
|
||||
Line number: 166
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
[DocId: 10]
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
role
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
rules[3]
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
resources
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -688,6 +652,57 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 185
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<h2>Impact</h2>
|
||||
<p>Using this role grants dangerous permissions</p>
|
||||
|
||||
<h2>Remediation</h2>
|
||||
<p>Consider removing this permissions</p>
|
||||
|
||||
|
||||
<hr/>
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/security-rules/SNYK-CC-K8S-47">More about this issue</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Role with dangerous permissions</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Public ID: <a href="https://snyk.io/security-rules/SNYK-CC-K8S-47">SNYK-CC-K8S-47</a>
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
[DocId: 10]
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
role
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
rules[3]
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
resources
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 185
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -733,6 +748,9 @@
|
||||
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">
|
||||
Line number: 226
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -7,7 +7,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>Snyk test report</title>
|
||||
<meta name="description" content="5 known vulnerabilities found in 9 vulnerable dependency paths.">
|
||||
<meta name="description" content="3 known vulnerabilities found in 8 vulnerable dependency paths.">
|
||||
<base target="_blank">
|
||||
<link rel="icon" type="image/png" href="https://res.cloudinary.com/snyk/image/upload/v1468845142/favicon/favicon.png"
|
||||
sizes="194x194">
|
||||
@@ -456,19 +456,19 @@
|
||||
<div class="header-wrap">
|
||||
<h1 class="project__header__title">Snyk test report</h1>
|
||||
|
||||
<p class="timestamp">October 30th 2022, 12:21:25 am</p>
|
||||
<p class="timestamp">September 7th 2022, 7:35:40 pm</p>
|
||||
</div>
|
||||
<div class="source-panel">
|
||||
<span>Scanned the following paths:</span>
|
||||
<ul>
|
||||
<li class="paths">/argo-cd/argoproj/argo-cd/v2 (gomodules)</li><li class="paths">/argo-cd (yarn)</li>
|
||||
<li class="paths">/private/argo-cd/argoproj/argo-cd/v2 (gomodules)</li><li class="paths">/private/argo-cd (yarn)</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="meta-counts">
|
||||
<div class="meta-count"><span>5</span> <span>known vulnerabilities</span></div>
|
||||
<div class="meta-count"><span>9 vulnerable dependency paths</span></div>
|
||||
<div class="meta-count"><span>1721</span> <span>dependencies</span></div>
|
||||
<div class="meta-count"><span>3</span> <span>known vulnerabilities</span></div>
|
||||
<div class="meta-count"><span>8 vulnerable dependency paths</span></div>
|
||||
<div class="meta-count"><span>1648</span> <span>dependencies</span></div>
|
||||
</div><!-- .meta-counts -->
|
||||
</div><!-- .layout-container--short -->
|
||||
</header><!-- .project__header -->
|
||||
@@ -476,312 +476,6 @@
|
||||
|
||||
<div class="layout-container" style="padding-top: 35px;">
|
||||
<div class="cards--vuln filter--patch filter--ignore">
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Server-side Request Forgery (SSRF)</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Package Manager: npm
|
||||
</li>
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
parse-url
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
|
||||
argo-cd-ui@1.0.0, git-url-parse@11.6.0 and others
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
<h3 class="card__section__title">Detailed paths</h3>
|
||||
|
||||
<ul class="card__meta__paths">
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
argo-cd-ui@1.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
git-url-parse@11.6.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
git-up@4.0.5
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
parse-url@6.0.5
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="overview">Overview</h2>
|
||||
<p><a href="https://www.npmjs.org/package/parse-url">parse-url</a> is an An advanced url parser supporting git urls too.</p>
|
||||
<p>Affected versions of this package are vulnerable to Server-side Request Forgery (SSRF) due to improper detection of protocol, resource, and pathname fields. Exploiting this vulnerability results in bypassing protocol verification.</p>
|
||||
<h2 id="poc">PoC:</h2>
|
||||
<pre><code class="language-js">import parseUrl from "parse-url";
|
||||
import fetch from 'node-fetch';
|
||||
var parsed=parseUrl("http://nnnn@localhost:808:/?id=xss")
|
||||
if(parsed.resource=="localhost"){
|
||||
console.log("internal network access is blocked")
|
||||
}
|
||||
else{
|
||||
const response = await fetch('http://'+parsed.resource+parsed.pathname);
|
||||
console.log(response)
|
||||
}
|
||||
</code></pre>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>parse-url</code> to version 8.1.0 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/IonicaBizau/parse-url/commit/881ecb46e39286b0c2b3c32fe61dca9377176884">GitHub Commit</a></li>
|
||||
<li><a href="https://github.com/IonicaBizau/parse-url/pull/55">GitHub PR</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-JS-PARSEURL-3023021">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Improper Input Validation</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Package Manager: npm
|
||||
</li>
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
parse-url
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
|
||||
argo-cd-ui@1.0.0, git-url-parse@11.6.0 and others
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
<h3 class="card__section__title">Detailed paths</h3>
|
||||
|
||||
<ul class="card__meta__paths">
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
argo-cd-ui@1.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
git-url-parse@11.6.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
git-up@4.0.5
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
parse-url@6.0.5
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="overview">Overview</h2>
|
||||
<p><a href="https://www.npmjs.org/package/parse-url">parse-url</a> is an An advanced url parser supporting git urls too.</p>
|
||||
<p>Affected versions of this package are vulnerable to Improper Input Validation due to incorrect parsing of URLs. This allows the attacker to craft a malformed URL which can lead to a phishing attack.</p>
|
||||
<pre><code class="language-js">
|
||||
const parseUrl = require("parse-url");
|
||||
const Url = require("url");
|
||||
|
||||
const express = require('express');
|
||||
const app = express();
|
||||
|
||||
var url = "https://www.google.com:x@fakesite.com:x";
|
||||
parsed = parseUrl(url);
|
||||
console.log("[*]`parse-url` output: ")
|
||||
console.log(parsed);
|
||||
|
||||
parsed2 = Url.parse(url);
|
||||
console.log("[*]`url` output: ")
|
||||
console.log(parsed2)
|
||||
|
||||
app.get('/', (req, res) => {
|
||||
if (parsed.host == "www.google.com") {
|
||||
res.send("<a href=\'" + parsed2.href + "\'>CLICK ME!</a>")
|
||||
}
|
||||
})
|
||||
|
||||
app.listen(8888,"0.0.0.0");
|
||||
</code></pre>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>parse-url</code> to version 8.1.0 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/IonicaBizau/parse-url/commit/881ecb46e39286b0c2b3c32fe61dca9377176884">GitHub Commit</a></li>
|
||||
<li><a href="https://github.com/IonicaBizau/parse-url/commit/9500430a3b9973bb1b5b2b9b319af2685ad272b3">GitHub Commit</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-JS-PARSEURL-3024398">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Regular Expression Denial of Service (ReDoS)</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Package Manager: npm
|
||||
</li>
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
minimatch
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
|
||||
argo-cd-ui@1.0.0, redoc@2.0.0-rc.64 and others
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
<h3 class="card__section__title">Detailed paths</h3>
|
||||
|
||||
<ul class="card__meta__paths">
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
argo-cd-ui@1.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
redoc@2.0.0-rc.64
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
@redocly/openapi-core@1.0.0-beta.82
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
minimatch@3.0.4
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="overview">Overview</h2>
|
||||
<p><a href="https://www.npmjs.com/package/minimatch">minimatch</a> is a minimal matching utility.</p>
|
||||
<p>Affected versions of this package are vulnerable to Regular Expression Denial of Service (ReDoS) via the <code>braceExpand</code> function in <code>minimatch.js</code>.</p>
|
||||
<h2 id="details">Details</h2>
|
||||
<p>Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its original and legitimate users. There are many types of DoS attacks, ranging from trying to clog the network pipes to the system by generating a large volume of traffic from many machines (a Distributed Denial of Service - DDoS - attack) to sending crafted requests that cause a system to crash or take a disproportional amount of time to process.</p>
|
||||
<p>The Regular expression Denial of Service (ReDoS) is a type of Denial of Service attack. Regular expressions are incredibly powerful, but they aren't very intuitive and can ultimately end up making it easy for attackers to take your site down.</p>
|
||||
<p>Let’s take the following regular expression as an example:</p>
|
||||
<pre><code class="language-js">regex = /A(B|C+)+D/
|
||||
</code></pre>
|
||||
<p>This regular expression accomplishes the following:</p>
|
||||
<ul>
|
||||
<li><code>A</code> The string must start with the letter 'A'</li>
|
||||
<li><code>(B|C+)+</code> The string must then follow the letter A with either the letter 'B' or some number of occurrences of the letter 'C' (the <code>+</code> matches one or more times). The <code>+</code> at the end of this section states that we can look for one or more matches of this section.</li>
|
||||
<li><code>D</code> Finally, we ensure this section of the string ends with a 'D'</li>
|
||||
</ul>
|
||||
<p>The expression would match inputs such as <code>ABBD</code>, <code>ABCCCCD</code>, <code>ABCBCCCD</code> and <code>ACCCCCD</code></p>
|
||||
<p>It most cases, it doesn't take very long for a regex engine to find a match:</p>
|
||||
<pre><code class="language-bash">$ time node -e '/A(B|C+)+D/.test("ACCCCCCCCCCCCCCCCCCCCCCCCCCCCD")'
|
||||
0.04s user 0.01s system 95% cpu 0.052 total
|
||||
|
||||
$ time node -e '/A(B|C+)+D/.test("ACCCCCCCCCCCCCCCCCCCCCCCCCCCCX")'
|
||||
1.79s user 0.02s system 99% cpu 1.812 total
|
||||
</code></pre>
|
||||
<p>The entire process of testing it against a 30 characters long string takes around ~52ms. But when given an invalid string, it takes nearly two seconds to complete the test, over ten times as long as it took to test a valid string. The dramatic difference is due to the way regular expressions get evaluated.</p>
|
||||
<p>Most Regex engines will work very similarly (with minor differences). The engine will match the first possible way to accept the current character and proceed to the next one. If it then fails to match the next one, it will backtrack and see if there was another way to digest the previous character. If it goes too far down the rabbit hole only to find out the string doesn’t match in the end, and if many characters have multiple valid regex paths, the number of backtracking steps can become very large, resulting in what is known as <em>catastrophic backtracking</em>.</p>
|
||||
<p>Let's look at how our expression runs into this problem, using a shorter string: "ACCCX". While it seems fairly straightforward, there are still four different ways that the engine could match those three C's:</p>
|
||||
<ol>
|
||||
<li>CCC</li>
|
||||
<li>CC+C</li>
|
||||
<li>C+CC</li>
|
||||
<li>C+C+C.</li>
|
||||
</ol>
|
||||
<p>The engine has to try each of those combinations to see if any of them potentially match against the expression. When you combine that with the other steps the engine must take, we can use <a href="https://regex101.com/debugger">RegEx 101 debugger</a> to see the engine has to take a total of 38 steps before it can determine the string doesn't match.</p>
|
||||
<p>From there, the number of steps the engine must use to validate a string just continues to grow.</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>String</th>
|
||||
<th align="right">Number of C's</th>
|
||||
<th align="right">Number of steps</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody><tr>
|
||||
<td>ACCCX</td>
|
||||
<td align="right">3</td>
|
||||
<td align="right">38</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ACCCCX</td>
|
||||
<td align="right">4</td>
|
||||
<td align="right">71</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ACCCCCX</td>
|
||||
<td align="right">5</td>
|
||||
<td align="right">136</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ACCCCCCCCCCCCCCX</td>
|
||||
<td align="right">14</td>
|
||||
<td align="right">65,553</td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
<p>By the time the string includes 14 C's, the engine has to take over 65,000 steps just to see if the string is valid. These extreme situations can cause them to work very slowly (exponentially related to input size, as shown above), allowing an attacker to exploit this and can cause the service to excessively consume CPU, resulting in a Denial of Service.</p>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>minimatch</code> to version 3.0.5 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/isaacs/minimatch/commit/a8763f4388e51956be62dc6025cec1126beeb5e6">GitHub Commit</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-JS-MINIMATCH-3050818">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Improper Input Validation</h2>
|
||||
<div class="card__section">
|
||||
@@ -875,6 +569,138 @@
|
||||
<p><a href="https://snyk.io/vuln/SNYK-GOLANG-GOMONGODBORGMONGODRIVERBSONBSONRW-1303393">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Denial of Service (DoS)</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Package Manager: golang
|
||||
</li>
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
github.com/prometheus/client_golang/prometheus/promhttp
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
github.com/argoproj/argo-cd/v2@0.0.0 and github.com/prometheus/client_golang/prometheus/promhttp@1.11.0
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
<h3 class="card__section__title">Detailed paths</h3>
|
||||
|
||||
<ul class="card__meta__paths">
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
github.com/argoproj/argo-cd/v2@0.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/prometheus/client_golang/prometheus/promhttp@1.11.0
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
github.com/argoproj/argo-cd/v2@0.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
sigs.k8s.io/controller-runtime@0.11.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
sigs.k8s.io/controller-runtime/pkg/manager@0.11.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/prometheus/client_golang/prometheus/promhttp@1.11.0
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
github.com/argoproj/argo-cd/v2@0.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
sigs.k8s.io/controller-runtime@0.11.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
sigs.k8s.io/controller-runtime/pkg/manager@0.11.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
sigs.k8s.io/controller-runtime/pkg/webhook@0.11.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
sigs.k8s.io/controller-runtime/pkg/webhook/internal/metrics@0.11.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/prometheus/client_golang/prometheus/promhttp@1.11.0
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="overview">Overview</h2>
|
||||
<p>Affected versions of this package are vulnerable to Denial of Service (DoS) when handling requests with non-standard HTTP methods. </p>
|
||||
<p><strong>Note:</strong> In order to be affected, an instrumented software must:</p>
|
||||
<ol>
|
||||
<li><p>use <code>promhttp.InstrumentHandler*</code> middleware except <code>RequestsInFlight</code></p>
|
||||
</li>
|
||||
<li><p>not filter any specific methods (e.g GET) before middleware</p>
|
||||
</li>
|
||||
<li><p>pass metric with <code>method</code> label name to the middleware</p>
|
||||
</li>
|
||||
<li><p>not have any firewall/LB/proxy that filters away requests with unknown <code>method</code>.</p>
|
||||
</li>
|
||||
</ol>
|
||||
<p><strong>Workarounds:</strong> </p>
|
||||
<ol>
|
||||
<li><p>removing the <code>method</code> label name from <code>counter/gauge</code> used in the <code>InstrumentHandler</code></p>
|
||||
</li>
|
||||
<li><p>turning off affected <code>promhttp</code> handlers</p>
|
||||
</li>
|
||||
<li><p>adding custom middleware before <code>promhttp</code> handler that will sanitize the request method given by Go <code>http.Request</code></p>
|
||||
</li>
|
||||
<li><p>using a reverse proxy or web application firewall, configured to only allow a limited set of methods.</p>
|
||||
</li>
|
||||
</ol>
|
||||
<h2 id="details">Details</h2>
|
||||
<p>Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.</p>
|
||||
<p>Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.</p>
|
||||
<p>One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.</p>
|
||||
<p>When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.</p>
|
||||
<p>Two common types of DoS vulnerabilities:</p>
|
||||
<ul>
|
||||
<li><p>High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, <a href="SNYK-JAVA-COMMONSFILEUPLOAD-30082">commons-fileupload:commons-fileupload</a>.</p>
|
||||
</li>
|
||||
<li><p>Crash - An attacker sending crafted requests that could cause the system to crash. For Example, <a href="https://snyk.io/vuln/npm:ws:20171108">npm <code>ws</code> package</a></p>
|
||||
</li>
|
||||
</ul>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>github.com/prometheus/client_golang/prometheus/promhttp</code> to version 1.11.1 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/prometheus/client_golang/commit/989baa30fe956631907493ccee1f8e7708660d96">GitHub Commit</a></li>
|
||||
<li><a href="https://github.com/prometheus/client_golang/pull/987">GitHub PR</a></li>
|
||||
<li><a href="https://github.com/prometheus/client_golang/releases/tag/v1.11.1">GitHub Release</a></li>
|
||||
<li><a href="https://bugzilla.redhat.com/show_bug.cgi?id=2045880">RedHat Bugzilla Bug</a></li>
|
||||
<li><a href="https://github.com/prometheus/client_golang/blob/22da9497b8f0d53072dfc4721904faa7395d8318/prometheus/promhttp/instrument_server.go#L95">Vulnerable Code</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-GOLANG-GITHUBCOMPROMETHEUSCLIENTGOLANGPROMETHEUSPROMHTTP-2401819">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Insecure Randomness</h2>
|
||||
@@ -899,7 +725,7 @@
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
|
||||
github.com/argoproj/argo-cd/v2@0.0.0, github.com/Masterminds/sprig@2.22.0 and others
|
||||
github.com/argoproj/argo-cd/v2@0.0.0, github.com/argoproj/notifications-engine/pkg/api@#567361917320 and others
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -913,20 +739,9 @@
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
github.com/argoproj/argo-cd/v2@0.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/Masterminds/sprig@2.22.0
|
||||
github.com/argoproj/notifications-engine/pkg/api@#567361917320
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/Masterminds/goutils@1.1.0
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
github.com/argoproj/argo-cd/v2@0.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/argoproj/notifications-engine/pkg/api@#4d8552b0775f
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/argoproj/notifications-engine/pkg/templates@#4d8552b0775f
|
||||
github.com/argoproj/notifications-engine/pkg/templates@#567361917320
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/Masterminds/sprig@2.22.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
@@ -939,11 +754,11 @@
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
github.com/argoproj/argo-cd/v2@0.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/argoproj/notifications-engine/pkg/cmd@#4d8552b0775f
|
||||
github.com/argoproj/notifications-engine/pkg/cmd@#567361917320
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/argoproj/notifications-engine/pkg/api@#4d8552b0775f
|
||||
github.com/argoproj/notifications-engine/pkg/api@#567361917320
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/argoproj/notifications-engine/pkg/templates@#4d8552b0775f
|
||||
github.com/argoproj/notifications-engine/pkg/templates@#567361917320
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/Masterminds/sprig@2.22.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
@@ -956,11 +771,11 @@
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
github.com/argoproj/argo-cd/v2@0.0.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/argoproj/notifications-engine/pkg/controller@#4d8552b0775f
|
||||
github.com/argoproj/notifications-engine/pkg/controller@#567361917320
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/argoproj/notifications-engine/pkg/api@#4d8552b0775f
|
||||
github.com/argoproj/notifications-engine/pkg/api@#567361917320
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/argoproj/notifications-engine/pkg/templates@#4d8552b0775f
|
||||
github.com/argoproj/notifications-engine/pkg/templates@#567361917320
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
github.com/Masterminds/sprig@2.22.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
805
docs/snyk/v2.4.11/ghcr.io_dexidp_dex_v2.32.0.html
Normal file
805
docs/snyk/v2.4.11/ghcr.io_dexidp_dex_v2.32.0.html
Normal file
@@ -0,0 +1,805 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-us">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>Snyk test report</title>
|
||||
<meta name="description" content="3 known vulnerabilities found in 12 vulnerable dependency paths.">
|
||||
<base target="_blank">
|
||||
<link rel="icon" type="image/png" href="https://res.cloudinary.com/snyk/image/upload/v1468845142/favicon/favicon.png"
|
||||
sizes="194x194">
|
||||
<link rel="shortcut icon" href="https://res.cloudinary.com/snyk/image/upload/v1468845142/favicon/favicon.ico">
|
||||
<style type="text/css">
|
||||
|
||||
body {
|
||||
-moz-font-feature-settings: "pnum";
|
||||
-webkit-font-feature-settings: "pnum";
|
||||
font-variant-numeric: proportional-nums;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
font-feature-settings: "pnum";
|
||||
font-size: 100%;
|
||||
line-height: 1.5;
|
||||
min-height: 100vh;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background-color: #F5F5F5;
|
||||
font-family: 'Arial', 'Helvetica', Calibri, sans-serif;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
a,
|
||||
a:link,
|
||||
a:visited {
|
||||
border-bottom: 1px solid #4b45a9;
|
||||
text-decoration: none;
|
||||
color: #4b45a9;
|
||||
}
|
||||
|
||||
a:hover,
|
||||
a:focus,
|
||||
a:active {
|
||||
border-bottom: 1px solid #4b45a9;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: none;
|
||||
margin: 1em 0;
|
||||
border-top: 1px solid #c5c5c5;
|
||||
}
|
||||
|
||||
ul {
|
||||
padding: 0 1em;
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
code {
|
||||
background-color: #EEE;
|
||||
color: #333;
|
||||
padding: 0.25em 0.5em;
|
||||
border-radius: 0.25em;
|
||||
}
|
||||
|
||||
pre {
|
||||
background-color: #333;
|
||||
font-family: monospace;
|
||||
padding: 0.5em 1em 0.75em;
|
||||
border-radius: 0.25em;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
pre code {
|
||||
padding: 0;
|
||||
background-color: transparent;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
a code {
|
||||
border-radius: .125rem .125rem 0 0;
|
||||
padding-bottom: 0;
|
||||
color: #4b45a9;
|
||||
}
|
||||
|
||||
a[href^="http://"]:after,
|
||||
a[href^="https://"]:after {
|
||||
background-image: linear-gradient(transparent,transparent),url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20112%20109%22%3E%3Cg%20id%3D%22Page-1%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Cg%20id%3D%22link-external%22%3E%3Cg%20id%3D%22arrow%22%3E%3Cpath%20id%3D%22Line%22%20stroke%3D%22%234B45A9%22%20stroke-width%3D%2215%22%20d%3D%22M88.5%2021l-43%2042.5%22%20stroke-linecap%3D%22square%22%2F%3E%3Cpath%20id%3D%22Triangle%22%20fill%3D%22%234B45A9%22%20d%3D%22M111.2%200v50L61%200z%22%2F%3E%3C%2Fg%3E%3Cpath%20id%3D%22square%22%20fill%3D%22%234B45A9%22%20d%3D%22M66%2015H0v94h94V44L79%2059v35H15V30h36z%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
|
||||
background-repeat: no-repeat;
|
||||
background-size: .75rem;
|
||||
content: "";
|
||||
display: inline-block;
|
||||
height: .75rem;
|
||||
margin-left: .25rem;
|
||||
width: .75rem;
|
||||
}
|
||||
|
||||
|
||||
/* Layout */
|
||||
|
||||
[class*=layout-container] {
|
||||
margin: 0 auto;
|
||||
max-width: 71.25em;
|
||||
padding: 1.9em 1.3em;
|
||||
position: relative;
|
||||
}
|
||||
.layout-container--short {
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
max-width: 48.75em;
|
||||
}
|
||||
|
||||
.layout-container--short:after {
|
||||
display: block;
|
||||
content: "";
|
||||
clear: both;
|
||||
}
|
||||
|
||||
/* Header */
|
||||
|
||||
.header {
|
||||
padding-bottom: 1px;
|
||||
}
|
||||
|
||||
.paths {
|
||||
margin-left: 8px;
|
||||
}
|
||||
.header-wrap {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
padding-top: 2em;
|
||||
}
|
||||
.project__header {
|
||||
background-color: #4b45a9;
|
||||
color: #fff;
|
||||
margin-bottom: -1px;
|
||||
padding-top: 1em;
|
||||
padding-bottom: 0.25em;
|
||||
border-bottom: 2px solid #BBB;
|
||||
}
|
||||
|
||||
.project__header__title {
|
||||
overflow-wrap: break-word;
|
||||
word-wrap: break-word;
|
||||
word-break: break-all;
|
||||
margin-bottom: .1em;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.timestamp {
|
||||
float: right;
|
||||
clear: none;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.meta-counts {
|
||||
clear: both;
|
||||
display: block;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
margin: 0 0 1.5em;
|
||||
color: #fff;
|
||||
clear: both;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
.meta-count {
|
||||
display: block;
|
||||
flex-basis: 100%;
|
||||
margin: 0 1em 1em 0;
|
||||
float: left;
|
||||
padding-right: 1em;
|
||||
border-right: 2px solid #fff;
|
||||
}
|
||||
|
||||
.meta-count:last-child {
|
||||
border-right: 0;
|
||||
padding-right: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
/* Card */
|
||||
|
||||
.card {
|
||||
background-color: #fff;
|
||||
border: 1px solid #c5c5c5;
|
||||
border-radius: .25rem;
|
||||
margin: 0 0 2em 0;
|
||||
position: relative;
|
||||
min-height: 40px;
|
||||
padding: 1.5em;
|
||||
}
|
||||
|
||||
.card .label {
|
||||
background-color: #767676;
|
||||
border: 2px solid #767676;
|
||||
color: white;
|
||||
padding: 0.25rem 0.75rem;
|
||||
font-size: 0.875rem;
|
||||
text-transform: uppercase;
|
||||
display: inline-block;
|
||||
margin: 0;
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
|
||||
.card .label__text {
|
||||
vertical-align: text-top;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.card .label--critical {
|
||||
background-color: #AB1A1A;
|
||||
border-color: #AB1A1A;
|
||||
}
|
||||
|
||||
.card .label--high {
|
||||
background-color: #CE5019;
|
||||
border-color: #CE5019;
|
||||
}
|
||||
|
||||
.card .label--medium {
|
||||
background-color: #D68000;
|
||||
border-color: #D68000;
|
||||
}
|
||||
|
||||
.card .label--low {
|
||||
background-color: #88879E;
|
||||
border-color: #88879E;
|
||||
}
|
||||
|
||||
.severity--low {
|
||||
border-color: #88879E;
|
||||
}
|
||||
|
||||
.severity--medium {
|
||||
border-color: #D68000;
|
||||
}
|
||||
|
||||
.severity--high {
|
||||
border-color: #CE5019;
|
||||
}
|
||||
|
||||
.severity--critical {
|
||||
border-color: #AB1A1A;
|
||||
}
|
||||
|
||||
.card--vuln {
|
||||
padding-top: 4em;
|
||||
}
|
||||
|
||||
.card--vuln .label {
|
||||
left: 0;
|
||||
position: absolute;
|
||||
top: 1.1em;
|
||||
padding-left: 1.9em;
|
||||
padding-right: 1.9em;
|
||||
border-radius: 0 0.25rem 0.25rem 0;
|
||||
}
|
||||
|
||||
.card--vuln .card__section h2 {
|
||||
font-size: 22px;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
.card--vuln .card__section p {
|
||||
margin: 0 0 0.5em 0;
|
||||
}
|
||||
|
||||
.card--vuln .card__meta {
|
||||
padding: 0 0 0 1em;
|
||||
margin: 0;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
.card .card__meta__paths {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
.card--vuln .card__title {
|
||||
font-size: 28px;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.card--vuln .card__cta p {
|
||||
margin: 0;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.source-panel {
|
||||
clear: both;
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
padding: 0.5em 0;
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
|
||||
|
||||
</style>
|
||||
<style type="text/css">
|
||||
.metatable {
|
||||
text-size-adjust: 100%;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-box-direction: normal;
|
||||
color: inherit;
|
||||
font-feature-settings: "pnum";
|
||||
box-sizing: border-box;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
font: inherit;
|
||||
font-size: 100%;
|
||||
margin: 0;
|
||||
outline: none;
|
||||
padding: 0;
|
||||
text-align: left;
|
||||
text-decoration: none;
|
||||
vertical-align: baseline;
|
||||
z-index: auto;
|
||||
margin-top: 12px;
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
font-variant-numeric: tabular-nums;
|
||||
max-width: 51.75em;
|
||||
}
|
||||
|
||||
tbody {
|
||||
text-size-adjust: 100%;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-box-direction: normal;
|
||||
color: inherit;
|
||||
font-feature-settings: "pnum";
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
box-sizing: border-box;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
font: inherit;
|
||||
font-size: 100%;
|
||||
margin: 0;
|
||||
outline: none;
|
||||
padding: 0;
|
||||
text-align: left;
|
||||
text-decoration: none;
|
||||
vertical-align: baseline;
|
||||
z-index: auto;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.meta-row {
|
||||
text-size-adjust: 100%;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-box-direction: normal;
|
||||
color: inherit;
|
||||
font-feature-settings: "pnum";
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
box-sizing: border-box;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
font: inherit;
|
||||
font-size: 100%;
|
||||
outline: none;
|
||||
text-align: left;
|
||||
text-decoration: none;
|
||||
vertical-align: baseline;
|
||||
z-index: auto;
|
||||
display: flex;
|
||||
align-items: start;
|
||||
border-top: 1px solid #d3d3d9;
|
||||
padding: 8px 0 0 0;
|
||||
border-bottom: none;
|
||||
margin: 8px;
|
||||
width: 47.75%;
|
||||
}
|
||||
|
||||
.meta-row-label {
|
||||
text-size-adjust: 100%;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-box-direction: normal;
|
||||
font-feature-settings: "pnum";
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
color: #4c4a73;
|
||||
box-sizing: border-box;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
font: inherit;
|
||||
margin: 0;
|
||||
outline: none;
|
||||
text-decoration: none;
|
||||
z-index: auto;
|
||||
align-self: start;
|
||||
flex: 1;
|
||||
font-size: 1rem;
|
||||
line-height: 1.5rem;
|
||||
padding: 0;
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
text-transform: none;
|
||||
letter-spacing: 0;
|
||||
}
|
||||
|
||||
.meta-row-value {
|
||||
text-size-adjust: 100%;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-box-direction: normal;
|
||||
color: inherit;
|
||||
font-feature-settings: "pnum";
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
word-break: break-word;
|
||||
box-sizing: border-box;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
font: inherit;
|
||||
font-size: 100%;
|
||||
margin: 0;
|
||||
outline: none;
|
||||
padding: 0;
|
||||
text-align: right;
|
||||
text-decoration: none;
|
||||
vertical-align: baseline;
|
||||
z-index: auto;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body class="section-projects">
|
||||
<main class="layout-stacked">
|
||||
<div class="layout-stacked__header header">
|
||||
<header class="project__header">
|
||||
<div class="layout-container">
|
||||
<a class="brand" href="https://snyk.io" title="Snyk">
|
||||
<svg width="68px" height="35px" viewBox="0 0 68 35" version="1.1" xmlns="http://www.w3.org/2000/svg" role="img">
|
||||
<title>Snyk - Open Source Security</title>
|
||||
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g fill="#fff">
|
||||
<path d="M5.732,27.278 C3.445,27.278 1.589,26.885 0,26.124 L0.483,22.472 C2.163,23.296 4.056,23.689 5.643,23.689 C6.801,23.689 7.563,23.295 7.563,22.599 C7.563,20.594 0.333,21.076 0.333,15.839 C0.333,12.491 3.407,10.729 7.259,10.729 C9.179,10.729 11.161,11.249 12.444,11.704 L11.924,15.294 C10.577,14.774 8.747,14.291 7.222,14.291 C6.282,14.291 5.518,14.621 5.518,15.231 C5.518,17.208 12.903,16.815 12.903,21.925 C12.903,25.325 9.877,27.277 5.733,27.277 L5.732,27.278 Z M25.726,26.936 L25.726,17.894 C25.726,15.827 24.811,14.85 23.069,14.85 C22.219,14.85 21.329,15.09 20.719,15.46 L20.719,26.936 L15.352,26.936 L15.352,11.262 L20.602,10.83 L20.474,13.392 L20.652,13.392 C21.784,11.87 23.702,10.716 25.992,10.716 C28.736,10.716 31.112,12.416 31.112,16.436 L31.112,26.936 L25.724,26.936 L25.726,26.936 Z M61.175,26.936 L56.879,19.479 L56.446,19.479 L56.446,26.935 L51.082,26.935 L51.082,8.37 L56.447,0 L56.447,17.323 C57.515,16.017 61.112,11.059 61.112,11.059 L67.732,11.059 L61.454,17.689 L67.949,26.95 L61.175,26.95 L61.175,26.938 L61.175,26.936 Z M44.13,11.11 L41.93,18.262 C41.5,19.606 41.08,22.079 41.08,22.079 C41.08,22.079 40.75,19.516 40.292,18.172 L37.94,11.108 L31.928,11.108 L38.462,26.935 C37.572,29.04 36.199,30.815 34.369,30.815 C34.039,30.815 33.709,30.802 33.389,30.765 L31.255,34.061 C31.928,34.441 33.212,34.835 34.737,34.835 C38.703,34.835 41.359,31.627 43.215,26.885 L49.443,11.108 L44.132,11.108 L44.13,11.11 Z"></path>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</a>
|
||||
<div class="header-wrap">
|
||||
<h1 class="project__header__title">Snyk test report</h1>
|
||||
|
||||
<p class="timestamp">September 7th 2022, 7:35:45 pm</p>
|
||||
</div>
|
||||
<div class="source-panel">
|
||||
<span>Scanned the following path:</span>
|
||||
<ul>
|
||||
<li class="paths">ghcr.io/dexidp/dex:v2.32.0/dexidp/dex (apk)</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="meta-counts">
|
||||
<div class="meta-count"><span>3</span> <span>known vulnerabilities</span></div>
|
||||
<div class="meta-count"><span>12 vulnerable dependency paths</span></div>
|
||||
<div class="meta-count"><span>14</span> <span>dependencies</span></div>
|
||||
</div><!-- .meta-counts -->
|
||||
</div><!-- .layout-container--short -->
|
||||
</header><!-- .project__header -->
|
||||
</div><!-- .layout-stacked__header -->
|
||||
<section class="layout-container">
|
||||
<table class="metatable">
|
||||
<tbody>
|
||||
<tr class="meta-row"><th class="meta-row-label">Project</th> <td class="meta-row-value">docker-image|ghcr.io/dexidp/dex</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Path</th> <td class="meta-row-value">ghcr.io/dexidp/dex:v2.32.0/dexidp/dex</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Package Manager</th> <td class="meta-row-value">apk</td></tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
<div class="layout-container" style="padding-top: 35px;">
|
||||
<div class="cards--vuln filter--patch filter--ignore">
|
||||
<div class="card card--vuln disclosure--not-new severity--critical" data-snyk-test="critical">
|
||||
<h2 class="card__title">Out-of-bounds Write</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--critical">
|
||||
<span class="label__text">critical severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Package Manager: alpine:3.16
|
||||
</li>
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
zlib/zlib
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0 and zlib/zlib@1.2.12-r1
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
<h3 class="card__section__title">Detailed paths</h3>
|
||||
|
||||
<ul class="card__meta__paths">
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
zlib/zlib@1.2.12-r1
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
apk-tools/apk-tools@2.12.9-r3
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
zlib/zlib@1.2.12-r1
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="nvd-description">NVD Description</h2>
|
||||
<p><strong><em>Note:</em></strong> <em>Versions mentioned in the description apply to the upstream <code>zlib</code> package.</em>
|
||||
<em>See <code>How to fix?</code> for <code>Alpine:3.16</code> relevant versions.</em></p>
|
||||
<p>zlib through 1.2.12 has a heap-based buffer over-read or buffer overflow in inflate in inflate.c via a large gzip header extra field. NOTE: only applications that call inflateGetHeader are affected. Some common applications bundle the affected zlib source code but may be unable to call inflateGetHeader (e.g., see the nodejs/node reference).</p>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>Alpine:3.16</code> <code>zlib</code> to version 1.2.12-r2 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/nodejs/node/blob/75b68c6e4db515f76df73af476eccf382bbcb00a/deps/zlib/inflate.c#L762-L764">MISC</a></li>
|
||||
<li><a href="https://github.com/ivd38/zlib_overflow">MISC</a></li>
|
||||
<li><a href="https://github.com/madler/zlib/commit/eff308af425b67093bab25f80f1ae950166bece1">MISC</a></li>
|
||||
<li><a href="https://github.com/madler/zlib/blob/21767c654d31d2dccdde4330529775c6c5fd5389/zlib.h#L1062-L1063">MISC</a></li>
|
||||
<li><a href="http://www.openwall.com/lists/oss-security/2022/08/05/2">MLIST</a></li>
|
||||
<li><a href="https://github.com/curl/curl/issues/9271">MISC</a></li>
|
||||
<li><a href="http://www.openwall.com/lists/oss-security/2022/08/09/1">MLIST</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/YRQAI7H4M4RQZ2IWZUEEXECBE5D56BH2/">FEDORA</a></li>
|
||||
<li><a href="https://www.debian.org/security/2022/dsa-5218">DEBIAN</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/NMBOJ77A7T7PQCARMDUK75TE6LLESZ3O/">FEDORA</a></li>
|
||||
<li><a href="https://security.netapp.com/advisory/ntap-20220901-0005/">CONFIRM</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/JWN4VE3JQR4O2SOUS5TXNLANRPMHWV4I/">FEDORA</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-ALPINE316-ZLIB-2976176">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--high" data-snyk-test="high">
|
||||
<h2 class="card__title">Use After Free</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--high">
|
||||
<span class="label__text">high severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Package Manager: alpine:3.16
|
||||
</li>
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
busybox/busybox
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0 and busybox/busybox@1.35.0-r13
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
<h3 class="card__section__title">Detailed paths</h3>
|
||||
|
||||
<ul class="card__meta__paths">
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
busybox/busybox@1.35.0-r13
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
alpine-baselayout/alpine-baselayout-data@3.2.0-r20
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
alpine-baselayout/alpine-baselayout@3.2.0-r20
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
busybox/busybox@1.35.0-r13
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
busybox/ssl_client@1.35.0-r13
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="nvd-description">NVD Description</h2>
|
||||
<p><strong><em>Note:</em></strong> <em>Versions mentioned in the description apply to the upstream <code>busybox</code> package.</em>
|
||||
<em>See <code>How to fix?</code> for <code>Alpine:3.16</code> relevant versions.</em></p>
|
||||
<p>A use-after-free in Busybox 1.35-x's awk applet leads to denial of service and possibly code execution when processing a crafted awk pattern in the copyvar function.</p>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>Alpine:3.16</code> <code>busybox</code> to version 1.35.0-r15 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://bugs.busybox.net/show_bug.cgi?id=14781">MISC</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-ALPINE316-BUSYBOX-2953070">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
<div class="card card--vuln disclosure--not-new severity--medium" data-snyk-test="medium">
|
||||
<h2 class="card__title">Inadequate Encryption Strength</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--medium">
|
||||
<span class="label__text">medium severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Package Manager: alpine:3.16
|
||||
</li>
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
openssl/libcrypto1.1
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0 and openssl/libcrypto1.1@1.1.1o-r0
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
<h3 class="card__section__title">Detailed paths</h3>
|
||||
|
||||
<ul class="card__meta__paths">
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
openssl/libcrypto1.1@1.1.1o-r0
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
openssl/libssl1.1@1.1.1o-r0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
openssl/libcrypto1.1@1.1.1o-r0
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
apk-tools/apk-tools@2.12.9-r3
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
openssl/libcrypto1.1@1.1.1o-r0
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
busybox/ssl_client@1.35.0-r13
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
openssl/libcrypto1.1@1.1.1o-r0
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
openssl/libssl1.1@1.1.1o-r0
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
apk-tools/apk-tools@2.12.9-r3
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
openssl/libssl1.1@1.1.1o-r0
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|ghcr.io/dexidp/dex@v2.32.0
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
busybox/ssl_client@1.35.0-r13
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
openssl/libssl1.1@1.1.1o-r0
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="nvd-description">NVD Description</h2>
|
||||
<p><strong><em>Note:</em></strong> <em>Versions mentioned in the description apply to the upstream <code>openssl</code> package.</em>
|
||||
<em>See <code>How to fix?</code> for <code>Alpine:3.16</code> relevant versions.</em></p>
|
||||
<p>AES OCB mode for 32-bit x86 platforms using the AES-NI assembly optimised implementation will not encrypt the entirety of the data under some circumstances. This could reveal sixteen bytes of data that was preexisting in the memory that wasn't written. In the special case of "in place" encryption, sixteen bytes of the plaintext would be revealed. Since OpenSSL does not support OCB based cipher suites for TLS and DTLS, they are both unaffected. Fixed in OpenSSL 3.0.5 (Affected 3.0.0-3.0.4). Fixed in OpenSSL 1.1.1q (Affected 1.1.1-1.1.1p).</p>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>Alpine:3.16</code> <code>openssl</code> to version 1.1.1q-r0 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://www.openssl.org/news/secadv/20220705.txt">CONFIRM</a></li>
|
||||
<li><a href="https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=a98f339ddd7e8f487d6e0088d4a9a42324885a93">CONFIRM</a></li>
|
||||
<li><a href="https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=919925673d6c9cfed3c1085497f5dfbbed5fc431">CONFIRM</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/V6567JERRHHJW2GNGJGKDRNHR7SNPZK7/">FEDORA</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/R6CK57NBQFTPUMXAPJURCGXUYT76NQAK/">FEDORA</a></li>
|
||||
<li><a href="https://security.netapp.com/advisory/ntap-20220715-0011/">CONFIRM</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/VCMNWKERPBKOEBNL7CLTTX3ZZCZLH7XA/">FEDORA</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-ALPINE316-OPENSSL-2941806">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
</div><!-- cards -->
|
||||
</div>
|
||||
</main><!-- .layout-stacked__content -->
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -7,7 +7,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>Snyk test report</title>
|
||||
<meta name="description" content="0 known vulnerabilities found in 0 vulnerable dependency paths.">
|
||||
<meta name="description" content="1 known vulnerabilities found in 3 vulnerable dependency paths.">
|
||||
<base target="_blank">
|
||||
<link rel="icon" type="image/png" href="https://res.cloudinary.com/snyk/image/upload/v1468845142/favicon/favicon.png"
|
||||
sizes="194x194">
|
||||
@@ -456,7 +456,7 @@
|
||||
<div class="header-wrap">
|
||||
<h1 class="project__header__title">Snyk test report</h1>
|
||||
|
||||
<p class="timestamp">October 30th 2022, 12:28:35 am</p>
|
||||
<p class="timestamp">September 7th 2022, 7:35:49 pm</p>
|
||||
</div>
|
||||
<div class="source-panel">
|
||||
<span>Scanned the following path:</span>
|
||||
@@ -466,8 +466,8 @@
|
||||
</div>
|
||||
|
||||
<div class="meta-counts">
|
||||
<div class="meta-count"><span>0</span> <span>known vulnerabilities</span></div>
|
||||
<div class="meta-count"><span>0 vulnerable dependency paths</span></div>
|
||||
<div class="meta-count"><span>1</span> <span>known vulnerabilities</span></div>
|
||||
<div class="meta-count"><span>3 vulnerable dependency paths</span></div>
|
||||
<div class="meta-count"><span>17</span> <span>dependencies</span></div>
|
||||
</div><!-- .meta-counts -->
|
||||
</div><!-- .layout-container--short -->
|
||||
@@ -484,7 +484,107 @@
|
||||
</table>
|
||||
</section>
|
||||
<div class="layout-container" style="padding-top: 35px;">
|
||||
No known vulnerabilities detected.
|
||||
<div class="cards--vuln filter--patch filter--ignore">
|
||||
<div class="card card--vuln disclosure--not-new severity--critical" data-snyk-test="critical">
|
||||
<h2 class="card__title">Out-of-bounds Write</h2>
|
||||
<div class="card__section">
|
||||
|
||||
<div class="label label--critical">
|
||||
<span class="label__text">critical severity</span>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<ul class="card__meta">
|
||||
<li class="card__meta__item">
|
||||
Package Manager: alpine:3.16
|
||||
</li>
|
||||
<li class="card__meta__item">
|
||||
Vulnerable module:
|
||||
|
||||
zlib/zlib
|
||||
</li>
|
||||
|
||||
<li class="card__meta__item">Introduced through:
|
||||
|
||||
docker-image|haproxy@2.0.29-alpine and zlib/zlib@1.2.12-r1
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
<h3 class="card__section__title">Detailed paths</h3>
|
||||
|
||||
<ul class="card__meta__paths">
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|haproxy@2.0.29-alpine
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
zlib/zlib@1.2.12-r1
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|haproxy@2.0.29-alpine
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
.haproxy-rundeps@20220718.230945
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
zlib/zlib@1.2.12-r1
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<span class="list-paths__item__introduced"><em>Introduced through</em>:
|
||||
docker-image|haproxy@2.0.29-alpine
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
apk-tools/apk-tools@2.12.9-r3
|
||||
<span class="list-paths__item__arrow">›</span>
|
||||
zlib/zlib@1.2.12-r1
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
</ul><!-- .list-paths -->
|
||||
|
||||
</div><!-- .card__section -->
|
||||
|
||||
<hr/>
|
||||
<!-- Overview -->
|
||||
<h2 id="nvd-description">NVD Description</h2>
|
||||
<p><strong><em>Note:</em></strong> <em>Versions mentioned in the description apply to the upstream <code>zlib</code> package.</em>
|
||||
<em>See <code>How to fix?</code> for <code>Alpine:3.16</code> relevant versions.</em></p>
|
||||
<p>zlib through 1.2.12 has a heap-based buffer over-read or buffer overflow in inflate in inflate.c via a large gzip header extra field. NOTE: only applications that call inflateGetHeader are affected. Some common applications bundle the affected zlib source code but may be unable to call inflateGetHeader (e.g., see the nodejs/node reference).</p>
|
||||
<h2 id="remediation">Remediation</h2>
|
||||
<p>Upgrade <code>Alpine:3.16</code> <code>zlib</code> to version 1.2.12-r2 or higher.</p>
|
||||
<h2 id="references">References</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/nodejs/node/blob/75b68c6e4db515f76df73af476eccf382bbcb00a/deps/zlib/inflate.c#L762-L764">MISC</a></li>
|
||||
<li><a href="https://github.com/ivd38/zlib_overflow">MISC</a></li>
|
||||
<li><a href="https://github.com/madler/zlib/commit/eff308af425b67093bab25f80f1ae950166bece1">MISC</a></li>
|
||||
<li><a href="https://github.com/madler/zlib/blob/21767c654d31d2dccdde4330529775c6c5fd5389/zlib.h#L1062-L1063">MISC</a></li>
|
||||
<li><a href="http://www.openwall.com/lists/oss-security/2022/08/05/2">MLIST</a></li>
|
||||
<li><a href="https://github.com/curl/curl/issues/9271">MISC</a></li>
|
||||
<li><a href="http://www.openwall.com/lists/oss-security/2022/08/09/1">MLIST</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/YRQAI7H4M4RQZ2IWZUEEXECBE5D56BH2/">FEDORA</a></li>
|
||||
<li><a href="https://www.debian.org/security/2022/dsa-5218">DEBIAN</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/NMBOJ77A7T7PQCARMDUK75TE6LLESZ3O/">FEDORA</a></li>
|
||||
<li><a href="https://security.netapp.com/advisory/ntap-20220901-0005/">CONFIRM</a></li>
|
||||
<li><a href="https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/JWN4VE3JQR4O2SOUS5TXNLANRPMHWV4I/">FEDORA</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="cta card__cta">
|
||||
<p><a href="https://snyk.io/vuln/SNYK-ALPINE316-ZLIB-2976176">More about this vulnerability</a></p>
|
||||
</div>
|
||||
|
||||
</div><!-- .card -->
|
||||
</div><!-- cards -->
|
||||
</div>
|
||||
</main><!-- .layout-stacked__content -->
|
||||
</body>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -456,12 +456,12 @@
|
||||
<div class="header-wrap">
|
||||
<h1 class="project__header__title">Snyk test report</h1>
|
||||
|
||||
<p class="timestamp">October 30th 2022, 12:29:23 am</p>
|
||||
<p class="timestamp">September 7th 2022, 7:36:04 pm</p>
|
||||
</div>
|
||||
<div class="source-panel">
|
||||
<span>Scanned the following path:</span>
|
||||
<ul>
|
||||
<li class="paths">redis:6.2.7-alpine (apk)</li>
|
||||
<li class="paths">redis:7.0.4-alpine (apk)</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -477,7 +477,7 @@
|
||||
<table class="metatable">
|
||||
<tbody>
|
||||
<tr class="meta-row"><th class="meta-row-label">Project</th> <td class="meta-row-value">docker-image|redis</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Path</th> <td class="meta-row-value">redis:6.2.7-alpine</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Path</th> <td class="meta-row-value">redis:7.0.4-alpine</td></tr>
|
||||
<tr class="meta-row"><th class="meta-row-label">Package Manager</th> <td class="meta-row-value">apk</td></tr>
|
||||
|
||||
</tbody>
|
||||
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user