In Bouncy Castle JCE Provider version 1.55 and earlier the DSA does not fully validate ASN.1 encoding of signature on verification. It is possible to inject extra elements in the sequence making up the signature and still have it validate, which in some cases may allow the introduction of 'invisible' data into a signed structure.
{
"unresolved_ranges": [
{
"extracted_events": [
{
"last_affected": "6.4-NA"
}
],
"cpe": "cpe:2.3:a:redhat:satellite:6.4:-:*:*:*:*:*:*",
"source": "CPE_FIELD"
},
{
"extracted_events": [
{
"last_affected": "6.4"
}
],
"cpe": "cpe:2.3:a:redhat:satellite_capsule:6.4:*:*:*:*:*:*:*",
"source": "CPE_FIELD"
},
{
"extracted_events": [
{
"last_affected": "14.04"
}
],
"source": "CPE_FIELD",
"cpe": "cpe:2.3:o:canonical:ubuntu_linux:14.04:*:*:*:*:*:*:*"
}
]
}{
"extracted_events": [
{
"introduced": "1.38"
},
{
"fixed": "1.56"
}
],
"cpe": "cpe:2.3:a:bouncycastle:legion-of-the-bouncy-castle-java-crytography-api:*:*:*:*:*:*:*:*",
"source": [
"CPE_FIELD",
"REFERENCES"
]
}[
{
"signature_type": "Function",
"target": {
"file": "prov/src/test/java/org/bouncycastle/jce/provider/test/DSATest.java",
"function": "performTest"
},
"digest": {
"function_hash": "260934301005839087771033825261480613861",
"length": 2322.0
},
"deprecated": false,
"signature_version": "v1",
"source": "https://github.com/bcgit/bc-java/commit/b0c3ce99d43d73a096268831d0d120ffc89eac7f",
"id": "CVE-2016-1000338-087c7fa8"
},
{
"signature_type": "Line",
"source": "https://github.com/bcgit/bc-java/commit/b0c3ce99d43d73a096268831d0d120ffc89eac7f",
"target": {
"file": "prov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/dsa/DSASigner.java"
},
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"136163138208565596251691075970191609612",
"107562756255838380340501290306204437774",
"256405273294590351025306411110688622024",
"321391742634389090900092687248037489853",
"6668448620659695156447218389951777055",
"114414081459311079942728053419609401083",
"224667266301163910456003187272837519895",
"332764780958810242807759347728695018005",
"2754744943816587054499795256365031272",
"54339207175021658509884097720332228201",
"260804928531546614162744774821933798241",
"78059865186365016316398972156821482959",
"197034695221731228794406326079488881854"
]
},
"id": "CVE-2016-1000338-7c04278f"
},
{
"signature_type": "Function",
"target": {
"file": "prov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/dsa/DSASigner.java",
"function": "derDecode"
},
"digest": {
"function_hash": "62843566931630879095861907111734894785",
"length": 237.0
},
"deprecated": false,
"signature_version": "v1",
"source": "https://github.com/bcgit/bc-java/commit/b0c3ce99d43d73a096268831d0d120ffc89eac7f",
"id": "CVE-2016-1000338-9c489c5a"
},
{
"signature_type": "Line",
"target": {
"file": "prov/src/test/java/org/bouncycastle/jce/provider/test/DSATest.java"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"27619101407773283894022340957986395790",
"53925406762360604861398560861262849999",
"216990679076247254168542336595971957581",
"14297879978164554187003311429379829455",
"11867573160650489211141619707597149843",
"207007376803811096500197258371319649111",
"312819499243767890488137211355596467932"
]
},
"deprecated": false,
"signature_version": "v1",
"source": "https://github.com/bcgit/bc-java/commit/b0c3ce99d43d73a096268831d0d120ffc89eac7f",
"id": "CVE-2016-1000338-d475fda9"
}
]
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2016-1000338.json"
"2026-04-11T19:41:59Z"