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.el9 (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.3-5.2.rhaos4.12.git44a2cb2.el9 (rpm) before *
0:1.25.0-2.2.el8 (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.2.0-7.2.rhaos4.12.el9 (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.el9 (rpm) before *
0:1.26.0-4.2.el9 (rpm) before *
0:2.15.0-7.1.rhaos4.13.el9 (rpm) before *
0:4.13.0-202404020737.p0.gd192e90.assembly.stream.el8 (rpm) before *
3:4.4.1-6.2.rhaos4.13.el9 (rpm) before *
4:1.1.12-1.1.rhaos4.13.el8 (rpm) before *
2:1.11.2-2.2.rhaos4.13.el9 (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.el9 (rpm) before *
0:1.27.0-3.1.el8 (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.el9 (rpm) before *
1:1.29.1-10.4.rhaos4.14.el8 (rpm) before *
0:0.19.0-1.4.rhaos4.14.el8 (rpm) before *
3:2.1.7-3.4.rhaos4.14.el9 (rpm) before *
1:1.4.0-1.3.rhaos4.14.el8 (rpm) before *
0:1.27.4-7.2.rhaos4.14.git082c52f.el9 (rpm) before *
0:1.27.0-3.2.el8 (rpm) before *
0:2.16.2-2.2.rhaos4.14.el9 (rpm) before *
0:4.14.0-202404160939.p0.g7bee54d.assembly.stream.el8 (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.el8 (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.el8 (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.el8 (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.el8 (rpm) before *
2:1.11.2-21.2.rhaos4.15.el8 (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