FlawOpen

flawopen.com/Referensi/Bypass verifikasi Cosign

Cosign GHSA-fx35-mq7g-6g98: bypass verifikasi bundle lama

Keparahan tinggi · CVSS 7.4 CWE-295: Improper Certificate Validation; CWE-347: Improper Verification of Cryptographic Signature Rantai pasok perangkat lunak
Penjelasan sederhana — tiket dan pemeriksaan identitas

Bayangkan petugas memeriksa tiket sekaligus nama pada kartu identitas resmi. Jalur bundle lama yang rentan dapat salah menganggap kunci lepas sebagai kartu identitas lalu menerima tiket tanpa memeriksa nama. Tanda tangan mungkin sah secara matematis, tetapi identitas workflow yang diwajibkan belum terbukti.

Batas: Penguraian bundle JSON lama pada kedua perintah verifikasi blob
Kegagalan: Nilai `cert` yang gagal diurai sebagai sertifikat dapat diperlakukan sebagai kunci publik sehingga validasi rantai X.509 dan kebijakan sertifikat dilewati
Dampak: Penanda tangan tanpa otorisasi dapat membuat verifikasi Blob berhasil; dampak integritas bergantung pada penggunaan berikutnya
Perbaikan: Perbarui ke Cosign v2.6.5 atau v3.1.3 dan versi lebih baru, lalu tetapkan identitas sertifikat dan issuer OIDC yang diharapkan

Bagian yang gagal pada verifikasi blob Cosign

GHSA-fx35-mq7g-6g98 berdampak pada `cosign verify-blob` dan `cosign verify-blob-attestation` ketika verifikasi keyless memakai flag identitas dan issuer (atau variasi regex-nya) bersama `--bundle` JSON lama. Jika kolom `cert` bundle tidak dapat diurai sebagai sertifikat X.509, versi terdampak memuatnya sebagai kunci publik. Hal itu mengatur verifier tanda tangan internal sehingga jalur berikutnya melewati validasi rantai sertifikat dan `CheckCertificatePolicy`; akibatnya, batasan identitas dan issuer tidak diterapkan. Tanda tangan yang valid untuk kunci tertanam dapat dinyatakan berhasil. Kunci dalam bundle juga dapat menggantikan `--key` yang diberikan secara eksplisit. Advisory menyebut verifikasi image kontainer dan jalur format bundle protobuf Sigstore standar tidak terdampak. Tidak ada CVE yang diketahui; advisory upstream mengklasifikasikannya High, CVSS 7.4, CWE-295, dan CWE-347.

Alur bypass verifikasi

1

Job CI menerima artefak dan bundle JSON lama

Artefak dan bundle bisa berasal dari workflow rilis, cache, mirror, atau masukan pipeline lain. Job penerima harus menganggap keduanya tidak tepercaya sampai pemeriksaan kebijakan selesai.

2

Parser rentan menerima kunci saat mengharapkan sertifikat

Pada versi terdampak, kegagalan parsing X.509 memicu fallback ke kunci publik. Ini mengatur verifier tanda tangan dan melewati penegakan kebijakan sertifikat pada verifikasi keyless.

3

Tanda tangan lolos tanpa membuktikan identitas workflow yang diwajibkan

Verifikasi dapat berhasil tanpa memastikan identitas sertifikat dan issuer OIDC yang ditentukan. Pipeline yang hanya memeriksa kode keluar dapat memakai artefak tanpa otorisasi.

Tetapkan versi Cosign yang sudah diperbaiki dan identitas penanda tangan

Kedua contoh menetapkan identitas GitHub Actions dan issuer OIDC yang sama secara tepat. Perintah rentan memakai rilis Cosign terdampak; parser dapat melewati pemeriksaan tersebut pada bundle JSON lama. Perintah yang diperkuat memakai rilis yang diperbaiki dan opsi nilai persis, bukan regex. Tetapkan binary atau kontainer Cosign di CI berdasarkan versi dan digest yang ditinjau. Perintah memverifikasi artefak; tidak membuat atau menampilkan bundle berbahaya.

Kebijakan CI — pola versi terdampakCacat belum diperbaiki
# Risk: affected versions accept legacy JSON bundles in this path
# cosign v2.6.4 or earlier, or v3.1.2 or earlier
cosign verify-blob release.tar.gz \
  --bundle release.sigstore.json \
  --certificate-identity-regexp "^https://github\.com/acme/service/\.github/workflows/release\.yml@refs/heads/main$" \
  --certificate-oidc-issuer-regexp "^https://token\.actions\.githubusercontent\.com$"
Kebijakan CI — versi yang diperbaikiDIPERBAIKI
# Require Cosign v2.6.5+ or v3.1.3+ in the pinned CI toolchain
cosign verify-blob release.tar.gz \
  --bundle release.sigstore.json \
  --certificate-identity "https://github.com/acme/service/.github/workflows/release.yml@refs/heads/main" \
  --certificate-oidc-issuer "https://token.actions.githubusercontent.com"

Daftar periksa remediasi dan peluncuran

Browse related vulnerability and supply-chain analysis:Security directory →
Lihat juga Dependency Confusion: risiko dan pertahanan Paparan Socket Docker: Risiko dan Perlindungan Injeksi Skrip GitHub Actions: Amankan Input Workflow