Skip to content

Commit 097d870

Browse files
committed
data/reports: add GO-2024-2451.yaml
Fixes #2451 Change-Id: Ia23e653daf0f4e8dfe31885a22ddf0c649548da2 Reviewed-on: https://go-review.googlesource.com/c/vulndb/+/559217 LUCI-TryBot-Result: Go LUCI <[email protected]> Reviewed-by: Damien Neil <[email protected]>
1 parent 6fd47d3 commit 097d870

File tree

2 files changed

+91
-0
lines changed

2 files changed

+91
-0
lines changed

data/osv/GO-2024-2451.json

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
{
2+
"schema_version": "1.3.1",
3+
"id": "GO-2024-2451",
4+
"modified": "0001-01-01T00:00:00Z",
5+
"published": "0001-01-01T00:00:00Z",
6+
"summary": "IV collision in github.com/bincyber/go-sqlcrypter",
7+
"details": "There is a risk of an IV collision using the awskms or aesgcm provider. NIST SP 800-38D section 8.3 states that it is unsafe to encrypt more than 2^32 plaintexts under the same key when using a random IV. The limit could easily be reached given the use case of database column encryption. Ciphertexts are likely to be persisted and stored together. IV collision could enable an attacker with access to the ciphertexts to decrypt all messages encrypted with the affected key.\n\nThe aesgcm provider cannot be fixed without a breaking change, so users should not encrypt more than 2^32 values with any key. The awskms package can be fixed without a breaking change by switching to a counter-based IV.",
8+
"affected": [
9+
{
10+
"package": {
11+
"name": "github.com/bincyber/go-sqlcrypter",
12+
"ecosystem": "Go"
13+
},
14+
"ranges": [
15+
{
16+
"type": "SEMVER",
17+
"events": [
18+
{
19+
"introduced": "0.1.0"
20+
}
21+
]
22+
}
23+
],
24+
"ecosystem_specific": {
25+
"imports": [
26+
{
27+
"path": "github.com/bincyber/go-sqlcrypter/providers/aesgcm",
28+
"symbols": [
29+
"New"
30+
]
31+
},
32+
{
33+
"path": "github.com/bincyber/go-sqlcrypter/providers/awskms",
34+
"symbols": [
35+
"New"
36+
]
37+
}
38+
]
39+
}
40+
}
41+
],
42+
"references": [
43+
{
44+
"type": "REPORT",
45+
"url": "https://github.com/bincyber/go-sqlcrypter/issues/127"
46+
},
47+
{
48+
"type": "WEB",
49+
"url": "https://github.com/bincyber/go-sqlcrypter/pull/128"
50+
}
51+
],
52+
"credits": [
53+
{
54+
"name": "@takeyourhatoff"
55+
}
56+
],
57+
"database_specific": {
58+
"url": "https://pkg.go.dev/vuln/GO-2024-2451"
59+
}
60+
}

data/reports/GO-2024-2451.yaml

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
id: GO-2024-2451
2+
modules:
3+
- module: github.com/bincyber/go-sqlcrypter
4+
versions:
5+
- introduced: 0.1.0
6+
vulnerable_at: 0.1.0
7+
packages:
8+
- package: github.com/bincyber/go-sqlcrypter/providers/aesgcm
9+
symbols:
10+
- New
11+
- package: github.com/bincyber/go-sqlcrypter/providers/awskms
12+
symbols:
13+
- New
14+
summary: IV collision in github.com/bincyber/go-sqlcrypter
15+
description: |-
16+
There is a risk of an IV collision using the awskms or aesgcm provider. NIST SP
17+
800-38D section 8.3 states that it is unsafe to encrypt more than 2^32
18+
plaintexts under the same key when using a random IV. The limit could easily be
19+
reached given the use case of database column encryption. Ciphertexts are likely
20+
to be persisted and stored together. IV collision could enable an attacker with
21+
access to the ciphertexts to decrypt all messages encrypted with the affected
22+
key.
23+
24+
The aesgcm provider cannot be fixed without a breaking change, so users should
25+
not encrypt more than 2^32 values with any key. The awskms package can be fixed
26+
without a breaking change by switching to a counter-based IV.
27+
credits:
28+
- '@takeyourhatoff'
29+
references:
30+
- report: https://github.com/bincyber/go-sqlcrypter/issues/127
31+
- web: https://github.com/bincyber/go-sqlcrypter/pull/128

0 commit comments

Comments
 (0)