Issue summary: SM2 signature generation uses non-constant-time arithmetic on secret values, forming a timing side-channel.
Impact summary: An attacker able to measure SM2 signing times may learn information about the per-signature secret nonce, which over many signatures can, via a lattice / Hidden Number Problem attack, lead to recovery of the private key.
CWE: CWE-208: Observable Timing Discrepancy
Description: SM2 signature generation computes the signature value using variable-time BIGNUM operations on the secret nonce and the private key, so the time taken to produce an SM2 signature depends on these secret values, forming a timing side-channel.
Applications performing SM2 signature generation are affected on all platforms.
FIPS Impact: no SM2 is not a FIPS algorithm.
{
"cna_assigner": "openssl",
"cwe_ids": [
"CWE-208"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/77xxx/CVE-2026-77696.json",
"unresolved_ranges": [
{
"extracted_events": [
{
"introduced": "3.0.0"
},
{
"fixed": "3.0.23"
}
],
"source": "AFFECTED_FIELD"
}
]
}{
"extracted_events": [
{
"cpe": "cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "1.1.1"
},
{
"fixed": "1.1.1zj"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "3.4.0"
},
{
"fixed": "3.4.8"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "3.5.0"
},
{
"fixed": "3.5.9"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "3.6.0"
},
{
"fixed": "3.6.5"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "4.0.0"
},
{
"fixed": "4.0.3"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "1c4aed808a7aea32d2d013049c2e0d9fef164fc9"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "20b20628d39b2dcc4677194bd68c7c060fa598cb"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "419f5cb519721dceed393dbc524d79e487c72e64"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "6b90445a56b99a328ac1feba058abf976504f440"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-77696.json"
[
{
"deprecated": false,
"digest": {
"function_hash": "131967312940747202956370063822305599160",
"length": 2154
},
"id": "CVE-2026-77696-098122df",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/20b20628d39b2dcc4677194bd68c7c060fa598cb",
"target": {
"file": "crypto/sm2/sm2_sign.c",
"function": "sm2_sig_gen"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "131967312940747202956370063822305599160",
"length": 2154
},
"id": "CVE-2026-77696-1f4a7e41",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/1c4aed808a7aea32d2d013049c2e0d9fef164fc9",
"target": {
"file": "crypto/sm2/sm2_sign.c",
"function": "sm2_sig_gen"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"296114614862154389598165167314540012161",
"229202569278462762033020553474248837110",
"7428752900245820764066972693757417318",
"126510736535358729567805554259901781411",
"66384435097933456649611652020347769514",
"199011037862887808748181384882338997040",
"233097731879964231737832268098231717237",
"273774207963896176073195278902564445454",
"179208099341889143788962291836815859167",
"91591368635730255268773421879728126199",
"156823231869711494092127010749969560345",
"241212573452981717294733347310199505581",
"252261660775740533632544606405422779460",
"252052937679928637251354129529487578469",
"301650126470373795387917501432763074084",
"295446010682396976313379560228403758238",
"127433506581396254887223159090984330970",
"43948150413024545827753726839841124358",
"336141477672759379239181436117623157114",
"47538035593476957191427533227029916919",
"68212558085213013441239217097192444426",
"292723141633638967831790310446437996438",
"153660912497566117982634219347788612911",
"75468866841580477842057086978643097858",
"156394473192740982878581085213127397639",
"267956442032478625351485646228861682623",
"33470486797870739706434716960808490234",
"99908133069654129103035555357353928832",
"215296897960818943160087872326211562790",
"183071779051903379716201690434058705355",
"229047102977305194701595552329949703936",
"333603538458160228918573344441990219342",
"107007641288964022690354365167476614407",
"304945292034668123484227757794584580445",
"173494224086355619040666740605283695836",
"43793671924976613517814415581990929607",
"279020443578019008180829682013333862693",
"90831646341353069535978555729029437067",
"65384108191507604994385035330488594082",
"302182846830656436052531828019146352668",
"116233933670114246831506727238387001717"
],
"threshold": 0.9
},
"id": "CVE-2026-77696-2a646ef7",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/20b20628d39b2dcc4677194bd68c7c060fa598cb",
"target": {
"file": "crypto/sm2/sm2_sign.c"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"296114614862154389598165167314540012161",
"229202569278462762033020553474248837110",
"7428752900245820764066972693757417318",
"126510736535358729567805554259901781411",
"66384435097933456649611652020347769514",
"199011037862887808748181384882338997040",
"233097731879964231737832268098231717237",
"273774207963896176073195278902564445454",
"179208099341889143788962291836815859167",
"91591368635730255268773421879728126199",
"156823231869711494092127010749969560345",
"241212573452981717294733347310199505581",
"252261660775740533632544606405422779460",
"252052937679928637251354129529487578469",
"301650126470373795387917501432763074084",
"295446010682396976313379560228403758238",
"127433506581396254887223159090984330970",
"43948150413024545827753726839841124358",
"336141477672759379239181436117623157114",
"47538035593476957191427533227029916919",
"68212558085213013441239217097192444426",
"292723141633638967831790310446437996438",
"153660912497566117982634219347788612911",
"75468866841580477842057086978643097858",
"156394473192740982878581085213127397639",
"267956442032478625351485646228861682623",
"33470486797870739706434716960808490234",
"99908133069654129103035555357353928832",
"215296897960818943160087872326211562790",
"183071779051903379716201690434058705355",
"229047102977305194701595552329949703936",
"333603538458160228918573344441990219342",
"107007641288964022690354365167476614407",
"304945292034668123484227757794584580445",
"173494224086355619040666740605283695836",
"43793671924976613517814415581990929607",
"279020443578019008180829682013333862693",
"90831646341353069535978555729029437067",
"65384108191507604994385035330488594082",
"302182846830656436052531828019146352668",
"116233933670114246831506727238387001717"
],
"threshold": 0.9
},
"id": "CVE-2026-77696-5adebf61",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/419f5cb519721dceed393dbc524d79e487c72e64",
"target": {
"file": "crypto/sm2/sm2_sign.c"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"296114614862154389598165167314540012161",
"229202569278462762033020553474248837110",
"7428752900245820764066972693757417318",
"126510736535358729567805554259901781411",
"66384435097933456649611652020347769514",
"199011037862887808748181384882338997040",
"233097731879964231737832268098231717237",
"273774207963896176073195278902564445454",
"179208099341889143788962291836815859167",
"91591368635730255268773421879728126199",
"156823231869711494092127010749969560345",
"241212573452981717294733347310199505581",
"252261660775740533632544606405422779460",
"252052937679928637251354129529487578469",
"301650126470373795387917501432763074084",
"295446010682396976313379560228403758238",
"127433506581396254887223159090984330970",
"43948150413024545827753726839841124358",
"336141477672759379239181436117623157114",
"47538035593476957191427533227029916919",
"68212558085213013441239217097192444426",
"292723141633638967831790310446437996438",
"153660912497566117982634219347788612911",
"75468866841580477842057086978643097858",
"156394473192740982878581085213127397639",
"267956442032478625351485646228861682623",
"33470486797870739706434716960808490234",
"99908133069654129103035555357353928832",
"215296897960818943160087872326211562790",
"183071779051903379716201690434058705355",
"229047102977305194701595552329949703936",
"333603538458160228918573344441990219342",
"107007641288964022690354365167476614407",
"304945292034668123484227757794584580445",
"173494224086355619040666740605283695836",
"43793671924976613517814415581990929607",
"279020443578019008180829682013333862693",
"90831646341353069535978555729029437067",
"65384108191507604994385035330488594082",
"302182846830656436052531828019146352668",
"116233933670114246831506727238387001717"
],
"threshold": 0.9
},
"id": "CVE-2026-77696-68d52d16",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/1c4aed808a7aea32d2d013049c2e0d9fef164fc9",
"target": {
"file": "crypto/sm2/sm2_sign.c"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "131967312940747202956370063822305599160",
"length": 2154
},
"id": "CVE-2026-77696-bab14c2b",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/419f5cb519721dceed393dbc524d79e487c72e64",
"target": {
"file": "crypto/sm2/sm2_sign.c",
"function": "sm2_sig_gen"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"28170854778703993674264004058177114599",
"73132526844288570625317440636111911761",
"177405411499435185068645597737938634778",
"224809958623850711330610094965797758930",
"295554444428855106393106961197201359586"
],
"threshold": 0.9
},
"id": "CVE-2026-77696-c377fa22",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/e04bd3433fd84e1861bf258ea37928d9845e6a86",
"target": {
"file": "include/openssl/opensslv.h"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "131967312940747202956370063822305599160",
"length": 2154
},
"id": "CVE-2026-77696-e259b67d",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/6b90445a56b99a328ac1feba058abf976504f440",
"target": {
"file": "crypto/sm2/sm2_sign.c",
"function": "sm2_sig_gen"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"296114614862154389598165167314540012161",
"229202569278462762033020553474248837110",
"7428752900245820764066972693757417318",
"126510736535358729567805554259901781411",
"66384435097933456649611652020347769514",
"199011037862887808748181384882338997040",
"233097731879964231737832268098231717237",
"273774207963896176073195278902564445454",
"179208099341889143788962291836815859167",
"91591368635730255268773421879728126199",
"156823231869711494092127010749969560345",
"241212573452981717294733347310199505581",
"252261660775740533632544606405422779460",
"252052937679928637251354129529487578469",
"301650126470373795387917501432763074084",
"295446010682396976313379560228403758238",
"127433506581396254887223159090984330970",
"43948150413024545827753726839841124358",
"336141477672759379239181436117623157114",
"47538035593476957191427533227029916919",
"68212558085213013441239217097192444426",
"292723141633638967831790310446437996438",
"153660912497566117982634219347788612911",
"75468866841580477842057086978643097858",
"156394473192740982878581085213127397639",
"267956442032478625351485646228861682623",
"33470486797870739706434716960808490234",
"99908133069654129103035555357353928832",
"215296897960818943160087872326211562790",
"183071779051903379716201690434058705355",
"229047102977305194701595552329949703936",
"333603538458160228918573344441990219342",
"107007641288964022690354365167476614407",
"304945292034668123484227757794584580445",
"173494224086355619040666740605283695836",
"43793671924976613517814415581990929607",
"279020443578019008180829682013333862693",
"90831646341353069535978555729029437067",
"65384108191507604994385035330488594082",
"302182846830656436052531828019146352668",
"116233933670114246831506727238387001717"
],
"threshold": 0.9
},
"id": "CVE-2026-77696-e95c41e4",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/6b90445a56b99a328ac1feba058abf976504f440",
"target": {
"file": "crypto/sm2/sm2_sign.c"
}
}
]
"2026-10-20T18:21:33Z"