Description
A memory leak flaw was found in Golang in the RSA encrypting/decrypting code, which might lead to a resource exhaustion vulnerability using attacker-controlled inputs. The memory leak happens in github.com/golang-fips/openssl/openssl/rsa.go#L113. The objects leaked are pkey and ctx. That function uses named return parameters to free pkey and ctx if there is an error initializing the context or setting the different properties. All return statements related to error cases follow the "return nil, nil, fail(...)" pattern, meaning that pkey and ctx will be nil inside the deferred function that should free them.
Problem types
Missing Release of Memory after Effective Lifetime
Product status
0:1.4.5-1.el8ap (rpm) before *
0:1.4.5-1.el9ap (rpm) before *
0:1.19.13-6.el7_9 (rpm) before *
8090020240313170136.26eb71ac (rpm) before *
0:5.1.1-2.el8_9 (rpm) before *
0:9.2.10-8.el8_9 (rpm) before *
0:9.2.10-16.el8_10 (rpm) before *
8100020240808093819.afee755d (rpm) before *
0:101-2.el8_10 (rpm) before *
0:1.20.12-2.el9_3 (rpm) before *
0:9.2.10-8.el9_3 (rpm) before *
0:5.1.1-2.el9_3 (rpm) before *
0:1.21.9-2.el9_4 (rpm) before *
0:9.2.10-16.el9_4 (rpm) before *
0:5.1.1-2.el9_4 (rpm) before *
2:1.33.7-3.el9_4 (rpm) before *
4:4.9.4-5.el9_4 (rpm) before *
6:0.7.3-4.el9_4 (rpm) before *
2:1.14.3-3.el9_4 (rpm) before *
1:1.4.0-4.el9_4 (rpm) before *
4:1.1.12-3.el9_4 (rpm) before *
0:132-1.el9 (rpm) before *
2:4.2.0-4.el9_0 (rpm) before *
1:1.0.1-6.el9_0 (rpm) before *
0:1.19.13-7.el9_2 (rpm) before *
2:4.4.1-20.el9_2 (rpm) before *
1:1.23.4-5.2.rhaos4.12.el8 (rpm) before *
0:0.16.0-2.2.rhaos4.12.el8 (rpm) before *
1:1.4.0-1.1.rhaos4.12.el8 (rpm) before *
0:1.25.5-13.1.rhaos4.12.git76343da.el8 (rpm) before *
0:1.25.0-2.2.el9 (rpm) before *
0:2.14.0-5.2.rhaos4.12.el9 (rpm) before *
0:4.12.0-202403251017.p0.gd4c9e3c.assembly.stream.el9 (rpm) before *
3:4.4.1-2.1.rhaos4.12.el8 (rpm) before *
3:1.1.6-5.2.rhaos4.12.el8 (rpm) before *
2:1.9.4-3.2.rhaos4.12.el8 (rpm) before *
1:1.29.1-2.2.rhaos4.13.el8 (rpm) before *
1:1.4.0-1.1.rhaos4.13.el8 (rpm) before *
0:1.26.5-11.1.rhaos4.13.git919cc6e.el8 (rpm) before *
0:1.26.0-4.1.el8 (rpm) before *
0:2.15.0-7.1.rhaos4.13.el9 (rpm) before *
0:4.13.0-202404020737.p0.gd192e90.assembly.stream.el9 (rpm) before *
3:4.4.1-5.2.rhaos4.13.el8 (rpm) before *
4:1.1.12-1.1.rhaos4.13.el8 (rpm) before *
2:1.11.2-2.2.rhaos4.13.el8 (rpm) before *
0:0.19.0-1.3.rhaos4.14.el8 (rpm) before *
1:1.4.0-1.2.rhaos4.14.el8 (rpm) before *
0:1.27.4-6.1.rhaos4.14.gitd09e4c0.el8 (rpm) before *
0:1.27.0-3.1.el9 (rpm) before *
0:2.16.2-2.1.rhaos4.14.el9 (rpm) before *
0:4.14.0-202403261640.p0.gf7b14a9.assembly.stream.el8 (rpm) before *
0:4.14.0-202403251040.p0.g607e2dd.assembly.stream.el8 (rpm) before *
3:4.4.1-11.3.rhaos4.14.el9 (rpm) before *
2:1.11.2-10.3.rhaos4.14.el8 (rpm) before *
1:1.29.1-10.4.rhaos4.14.el9 (rpm) before *
0:0.19.0-1.4.rhaos4.14.el8 (rpm) before *
3:2.1.7-3.4.rhaos4.14.el8 (rpm) before *
1:1.4.0-1.3.rhaos4.14.el8 (rpm) before *
0:1.27.4-7.2.rhaos4.14.git082c52f.el8 (rpm) before *
0:1.27.0-3.2.el9 (rpm) before *
0:2.16.2-2.2.rhaos4.14.el9 (rpm) before *
0:4.14.0-202404160939.p0.g7bee54d.assembly.stream.el9 (rpm) before *
0:4.14.0-202404151639.p0.gd2acdd5.assembly.stream.el8 (rpm) before *
0:4.14.0-202404151639.p0.g81558cc.assembly.stream.el8 (rpm) before *
0:4.14.0-202404151639.p0.gf7b14a9.assembly.stream.el9 (rpm) before *
0:4.14.0-202404151639.p0.g8926a29.assembly.stream.el8 (rpm) before *
0:4.14.0-202404151639.p0.g607e2dd.assembly.stream.el9 (rpm) before *
3:4.4.1-11.4.rhaos4.14.el8 (rpm) before *
4:1.1.12-1.2.rhaos4.14.el8 (rpm) before *
2:1.11.2-10.4.rhaos4.14.el9 (rpm) before *
0:4.14.19-202403280926.p0.gc1f8861.assembly.4.14.19.el9 (rpm) before *
414.92.202407300859-0 (rpm) before *
1:1.29.1-20.3.rhaos4.15.el8 (rpm) before *
0:0.20.0-1.1.rhaos4.15.el8 (rpm) before *
1:1.4.0-1.2.rhaos4.15.el8 (rpm) before *
0:1.28.4-8.rhaos4.15.git24f50b9.el9 (rpm) before *
0:1.28.0-3.1.el8 (rpm) before *
0:2.16.2-2.1.rhaos4.15.el9 (rpm) before *
0:4.15.0-202403211240.p0.g62c4d45.assembly.stream.el9 (rpm) before *
0:4.15.0-202403211549.p0.g2e3cca1.assembly.stream.el9 (rpm) before *
3:4.4.1-21.1.rhaos4.15.el8 (rpm) before *
4:1.1.12-1.1.rhaos4.15.el9 (rpm) before *
2:1.11.2-21.2.rhaos4.15.el9 (rpm) before *
0:4.15.6-202403280951.p0.g94b1c2a.assembly.4.15.6.el9 (rpm) before *
415.92.202407191425-0 (rpm) before *
0:3.3.23-16.el8ost (rpm) before *
0:0.2.1-3.el8ost (rpm) before *
0:3.4.26-8.el9ost (rpm) before *
0:0.2.1-3.el9ost (rpm) before *
v4.16.0-137 (rpm) before *
v4.16.0-38 (rpm) before *
Timeline
| 2024-02-06: | Reported to Red Hat. | 
| 2024-03-20: | Made public. | 
Credits
Red Hat would like to thank @qmuntal and @r3kumar for reporting this issue.
References
access.redhat.com/errata/RHSA-2024:1462 (RHSA-2024:1462) 
access.redhat.com/errata/RHSA-2024:1468 (RHSA-2024:1468) 
access.redhat.com/errata/RHSA-2024:1472 (RHSA-2024:1472) 
access.redhat.com/errata/RHSA-2024:1501 (RHSA-2024:1501) 
access.redhat.com/errata/RHSA-2024:1502 (RHSA-2024:1502) 
access.redhat.com/errata/RHSA-2024:1561 (RHSA-2024:1561) 
access.redhat.com/errata/RHSA-2024:1563 (RHSA-2024:1563) 
access.redhat.com/errata/RHSA-2024:1566 (RHSA-2024:1566) 
access.redhat.com/errata/RHSA-2024:1567 (RHSA-2024:1567) 
access.redhat.com/errata/RHSA-2024:1574 (RHSA-2024:1574) 
access.redhat.com/errata/RHSA-2024:1640 (RHSA-2024:1640) 
access.redhat.com/errata/RHSA-2024:1644 (RHSA-2024:1644) 
access.redhat.com/errata/RHSA-2024:1646 (RHSA-2024:1646) 
access.redhat.com/errata/RHSA-2024:1763 (RHSA-2024:1763) 
access.redhat.com/errata/RHSA-2024:1897 (RHSA-2024:1897) 
access.redhat.com/errata/RHSA-2024:2562 (RHSA-2024:2562) 
access.redhat.com/errata/RHSA-2024:2568 (RHSA-2024:2568) 
access.redhat.com/errata/RHSA-2024:2569 (RHSA-2024:2569) 
access.redhat.com/errata/RHSA-2024:2729 (RHSA-2024:2729) 
access.redhat.com/errata/RHSA-2024:2730 (RHSA-2024:2730) 
access.redhat.com/errata/RHSA-2024:2767 (RHSA-2024:2767) 
access.redhat.com/errata/RHSA-2024:3265 (RHSA-2024:3265) 
access.redhat.com/errata/RHSA-2024:3352 (RHSA-2024:3352) 
access.redhat.com/errata/RHSA-2024:4146 (RHSA-2024:4146) 
access.redhat.com/errata/RHSA-2024:4371 (RHSA-2024:4371) 
access.redhat.com/errata/RHSA-2024:4378 (RHSA-2024:4378) 
access.redhat.com/errata/RHSA-2024:4379 (RHSA-2024:4379) 
access.redhat.com/errata/RHSA-2024:4502 (RHSA-2024:4502) 
access.redhat.com/errata/RHSA-2024:4581 (RHSA-2024:4581) 
access.redhat.com/errata/RHSA-2024:4591 (RHSA-2024:4591) 
access.redhat.com/errata/RHSA-2024:4672 (RHSA-2024:4672) 
access.redhat.com/errata/RHSA-2024:4699 (RHSA-2024:4699) 
access.redhat.com/errata/RHSA-2024:4761 (RHSA-2024:4761) 
access.redhat.com/errata/RHSA-2024:4762 (RHSA-2024:4762) 
access.redhat.com/security/cve/CVE-2024-1394 
bugzilla.redhat.com/show_bug.cgi?id=2262921 (RHBZ#2262921) 
github.com/...ommit/85d31d0d257ce842c8a1e63c4d230ae850348136
github.com/...penssl/security/advisories/GHSA-78hx-gp6g-7mj6
github.com/...ommit/104fe7f6912788d2ad44602f77a0a0a62f1f259f
vuln.go.dev/ID/GO-2024-2660.json
access.redhat.com/errata/RHSA-2024:1462 (RHSA-2024:1462) 
access.redhat.com/errata/RHSA-2024:1468 (RHSA-2024:1468) 
access.redhat.com/errata/RHSA-2024:1472 (RHSA-2024:1472) 
access.redhat.com/errata/RHSA-2024:1501 (RHSA-2024:1501) 
access.redhat.com/errata/RHSA-2024:1502 (RHSA-2024:1502) 
access.redhat.com/errata/RHSA-2024:1561 (RHSA-2024:1561) 
access.redhat.com/errata/RHSA-2024:1563 (RHSA-2024:1563) 
access.redhat.com/errata/RHSA-2024:1566 (RHSA-2024:1566) 
access.redhat.com/errata/RHSA-2024:1567 (RHSA-2024:1567) 
access.redhat.com/errata/RHSA-2024:1574 (RHSA-2024:1574) 
access.redhat.com/errata/RHSA-2024:1640 (RHSA-2024:1640) 
access.redhat.com/errata/RHSA-2024:1644 (RHSA-2024:1644) 
access.redhat.com/errata/RHSA-2024:1646 (RHSA-2024:1646) 
access.redhat.com/errata/RHSA-2024:1763 (RHSA-2024:1763) 
access.redhat.com/errata/RHSA-2024:1897 (RHSA-2024:1897) 
access.redhat.com/errata/RHSA-2024:2562 (RHSA-2024:2562) 
access.redhat.com/errata/RHSA-2024:2568 (RHSA-2024:2568) 
access.redhat.com/errata/RHSA-2024:2569 (RHSA-2024:2569) 
access.redhat.com/errata/RHSA-2024:2729 (RHSA-2024:2729) 
access.redhat.com/errata/RHSA-2024:2730 (RHSA-2024:2730) 
access.redhat.com/errata/RHSA-2024:2767 (RHSA-2024:2767) 
access.redhat.com/errata/RHSA-2024:3265 (RHSA-2024:3265) 
access.redhat.com/errata/RHSA-2024:3352 (RHSA-2024:3352) 
access.redhat.com/errata/RHSA-2024:4146 (RHSA-2024:4146) 
access.redhat.com/errata/RHSA-2024:4371 (RHSA-2024:4371) 
access.redhat.com/errata/RHSA-2024:4378 (RHSA-2024:4378) 
access.redhat.com/errata/RHSA-2024:4379 (RHSA-2024:4379) 
access.redhat.com/errata/RHSA-2024:4502 (RHSA-2024:4502) 
access.redhat.com/errata/RHSA-2024:4581 (RHSA-2024:4581) 
access.redhat.com/errata/RHSA-2024:4591 (RHSA-2024:4591) 
access.redhat.com/errata/RHSA-2024:4672 (RHSA-2024:4672) 
access.redhat.com/errata/RHSA-2024:4699 (RHSA-2024:4699) 
access.redhat.com/errata/RHSA-2024:4761 (RHSA-2024:4761) 
access.redhat.com/errata/RHSA-2024:4762 (RHSA-2024:4762) 
access.redhat.com/errata/RHSA-2024:4960 (RHSA-2024:4960) 
access.redhat.com/errata/RHSA-2024:5258 (RHSA-2024:5258) 
access.redhat.com/errata/RHSA-2024:5634 (RHSA-2024:5634) 
access.redhat.com/errata/RHSA-2024:7262 (RHSA-2024:7262) 
access.redhat.com/errata/RHSA-2025:7118 (RHSA-2025:7118) 
access.redhat.com/security/cve/CVE-2024-1394 
bugzilla.redhat.com/show_bug.cgi?id=2262921 (RHBZ#2262921) 
github.com/...ommit/85d31d0d257ce842c8a1e63c4d230ae850348136
github.com/...penssl/security/advisories/GHSA-78hx-gp6g-7mj6
github.com/...ommit/104fe7f6912788d2ad44602f77a0a0a62f1f259f
vuln.go.dev/ID/GO-2024-2660.json