OESA-2022-1734 (CVE-2022-28734)
Vulnerability from osv_openeuler – Published: 2022-07-01 11:05 – Updated: 2026-08-06 11:05 – Source websiteGNU GRUB is a Multiboot boot loader. It was derived from GRUB, the GRand Unified Bootloader, which was originally designed and implemented by Erich Stefan Boleyn.
Security Fix(es):
A flaw was found in grub2 when handling split HTTP headers. While processing a split HTTP header, grub2 wrongly advances its control pointer to the internal buffer by one position, which can lead to an out-of-bounds write. This flaw allows an attacker to leverage this issue by crafting a malicious set of HTTP packages making grub2 corrupt its internal memory metadata structure. This leads to data integrity and confidentiality issues or forces grub to crash, resulting in a denial of service attack.(CVE-2022-28734)
A use-after-free vulnerability was found on grub2's chainloader command. This flaw allows an attacker to gain access to restricted data or cause arbitrary code execution if they can establish control from grub's memory allocation pattern.(CVE-2022-28736)
A flaw was found in grub2 when handling JPEG images. This flaw allows an attacker to craft a malicious JPEG image, which leads to an underflow on a grub2's internal pointer, leading to a heap-based out-of-bounds write. Secure-boot mechanisms circumvention and arbitrary code execution may also be achievable.(CVE-2021-3697)
A flaw was found in grub2 when handling a PNG image header. When decoding the data contained in the Huffman table at the PNG file header, an out-of-bounds write may happen on grub's heap.(CVE-2021-3696)
A flaw was found in grub2 when handling IPv4 packets. This flaw allows an attacker to craft a malicious packet, triggering an integer underflow in grub code. Consequently, the memory allocation for handling the packet data may be smaller than the size needed. This issue causes an out-of-bands write during packet handling, compromising data integrity, confidentiality issues, a denial of service, and remote code execution.(CVE-2022-28733)
A flaw was found in grub 2, where a crafted 16-bit grayscale PNG image may lead to an out-of-bounds write. This flaw allows an attacker to corrupt the data on the heap portion of the grub2's memory, leading to possible code execution and the circumvention of the secure boot mechanism.(CVE-2021-3695)
A flaw was found in grub2. The shim_lock verifier from grub2 allows non-kernel files to be loaded when secure boot is enabled, giving the possibility of unverified code or modules to be loaded when it should not be allowed. (CVE-2022-28735)
{
"affected": [
{
"ecosystem_specific": {
"aarch64": [
"grub2-debugsource-2.04-24.oe1.aarch64.rpm",
"grub2-efi-aa64-2.04-24.oe1.aarch64.rpm",
"grub2-tools-minimal-2.04-24.oe1.aarch64.rpm",
"grub2-efi-aa64-cdboot-2.04-24.oe1.aarch64.rpm",
"grub2-debuginfo-2.04-24.oe1.aarch64.rpm",
"grub2-tools-2.04-24.oe1.aarch64.rpm",
"grub2-tools-extra-2.04-24.oe1.aarch64.rpm"
],
"noarch": [
"grub2-efi-x64-modules-2.04-24.oe1.noarch.rpm",
"grub2-efi-ia32-modules-2.04-24.oe1.noarch.rpm",
"grub2-common-2.04-24.oe1.noarch.rpm",
"grub2-pc-modules-2.04-24.oe1.noarch.rpm",
"grub2-efi-aa64-modules-2.04-24.oe1.noarch.rpm",
"grub2-help-2.04-24.oe1.noarch.rpm"
],
"src": [
"grub2-2.04-24.oe1.src.rpm"
],
"x86_64": [
"grub2-efi-x64-2.04-24.oe1.x86_64.rpm",
"grub2-tools-extra-2.04-24.oe1.x86_64.rpm",
"grub2-tools-minimal-2.04-24.oe1.x86_64.rpm",
"grub2-pc-2.04-24.oe1.x86_64.rpm",
"grub2-efi-ia32-2.04-24.oe1.x86_64.rpm",
"grub2-efi-ia32-cdboot-2.04-24.oe1.x86_64.rpm",
"grub2-debuginfo-2.04-24.oe1.x86_64.rpm",
"grub2-efi-x64-cdboot-2.04-24.oe1.x86_64.rpm",
"grub2-tools-efi-2.04-24.oe1.x86_64.rpm",
"grub2-tools-2.04-24.oe1.x86_64.rpm",
"grub2-debugsource-2.04-24.oe1.x86_64.rpm"
]
},
"package": {
"ecosystem": "openEuler:20.03-LTS-SP1",
"name": "grub2",
"purl": "pkg:rpm/openEuler/grub2\u0026distro=openEuler-20.03-LTS-SP1"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "2.04-24.oe1"
}
],
"type": "ECOSYSTEM"
}
]
},
{
"ecosystem_specific": {
"aarch64": [
"grub2-tools-extra-2.04-24.oe1.aarch64.rpm",
"grub2-debugsource-2.04-24.oe1.aarch64.rpm",
"grub2-debuginfo-2.04-24.oe1.aarch64.rpm",
"grub2-tools-minimal-2.04-24.oe1.aarch64.rpm",
"grub2-efi-aa64-cdboot-2.04-24.oe1.aarch64.rpm",
"grub2-tools-2.04-24.oe1.aarch64.rpm",
"grub2-efi-aa64-2.04-24.oe1.aarch64.rpm"
],
"noarch": [
"grub2-efi-x64-modules-2.04-24.oe1.noarch.rpm",
"grub2-common-2.04-24.oe1.noarch.rpm",
"grub2-help-2.04-24.oe1.noarch.rpm",
"grub2-pc-modules-2.04-24.oe1.noarch.rpm",
"grub2-efi-aa64-modules-2.04-24.oe1.noarch.rpm",
"grub2-efi-ia32-modules-2.04-24.oe1.noarch.rpm"
],
"src": [
"grub2-2.04-24.oe1.src.rpm"
],
"x86_64": [
"grub2-pc-2.04-24.oe1.x86_64.rpm",
"grub2-efi-x64-cdboot-2.04-24.oe1.x86_64.rpm",
"grub2-efi-ia32-2.04-24.oe1.x86_64.rpm",
"grub2-tools-minimal-2.04-24.oe1.x86_64.rpm",
"grub2-tools-extra-2.04-24.oe1.x86_64.rpm",
"grub2-tools-2.04-24.oe1.x86_64.rpm",
"grub2-efi-x64-2.04-24.oe1.x86_64.rpm",
"grub2-efi-ia32-cdboot-2.04-24.oe1.x86_64.rpm",
"grub2-debuginfo-2.04-24.oe1.x86_64.rpm",
"grub2-tools-efi-2.04-24.oe1.x86_64.rpm",
"grub2-debugsource-2.04-24.oe1.x86_64.rpm"
]
},
"package": {
"ecosystem": "openEuler:20.03-LTS-SP3",
"name": "grub2",
"purl": "pkg:rpm/openEuler/grub2\u0026distro=openEuler-20.03-LTS-SP3"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "2.04-24.oe1"
}
],
"type": "ECOSYSTEM"
}
]
},
{
"ecosystem_specific": {
"aarch64": [
"grub2-tools-2.06-10.oe2203.aarch64.rpm",
"grub2-debugsource-2.06-10.oe2203.aarch64.rpm",
"grub2-efi-aa64-cdboot-2.06-10.oe2203.aarch64.rpm",
"grub2-efi-aa64-2.06-10.oe2203.aarch64.rpm",
"grub2-tools-minimal-2.06-10.oe2203.aarch64.rpm",
"grub2-tools-extra-2.06-10.oe2203.aarch64.rpm",
"grub2-debuginfo-2.06-10.oe2203.aarch64.rpm"
],
"noarch": [
"grub2-efi-ia32-modules-2.06-10.oe2203.noarch.rpm",
"grub2-efi-aa64-modules-2.06-10.oe2203.noarch.rpm",
"grub2-pc-modules-2.06-10.oe2203.noarch.rpm",
"grub2-efi-x64-modules-2.06-10.oe2203.noarch.rpm",
"grub2-help-2.06-10.oe2203.noarch.rpm",
"grub2-common-2.06-10.oe2203.noarch.rpm"
],
"src": [
"grub2-2.06-10.oe2203.src.rpm"
],
"x86_64": [
"grub2-pc-2.06-10.oe2203.x86_64.rpm",
"grub2-tools-efi-2.06-10.oe2203.x86_64.rpm",
"grub2-efi-x64-2.06-10.oe2203.x86_64.rpm",
"grub2-efi-ia32-2.06-10.oe2203.x86_64.rpm",
"grub2-efi-x64-cdboot-2.06-10.oe2203.x86_64.rpm",
"grub2-tools-minimal-2.06-10.oe2203.x86_64.rpm",
"grub2-efi-ia32-cdboot-2.06-10.oe2203.x86_64.rpm",
"grub2-tools-extra-2.06-10.oe2203.x86_64.rpm",
"grub2-debugsource-2.06-10.oe2203.x86_64.rpm",
"grub2-tools-2.06-10.oe2203.x86_64.rpm",
"grub2-debuginfo-2.06-10.oe2203.x86_64.rpm"
]
},
"package": {
"ecosystem": "openEuler:22.03-LTS",
"name": "grub2",
"purl": "pkg:rpm/openEuler/grub2\u0026distro=openEuler-22.03-LTS"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "2.06-10.oe2203"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"database_specific": {
"severity": "High"
},
"details": "GNU GRUB is a Multiboot boot loader. It was derived from GRUB, the GRand Unified Bootloader, which was originally designed and implemented by Erich Stefan Boleyn.\r\n\r\nSecurity Fix(es):\r\n\r\nA flaw was found in grub2 when handling split HTTP headers. While processing a split HTTP header, grub2 wrongly advances its control pointer to the internal buffer by one position, which can lead to an out-of-bounds write. This flaw allows an attacker to leverage this issue by crafting a malicious set of HTTP packages making grub2 corrupt its internal memory metadata structure. This leads to data integrity and confidentiality issues or forces grub to crash, resulting in a denial of service attack.(CVE-2022-28734)\r\n\r\nA use-after-free vulnerability was found on grub2\u0027s chainloader command. This flaw allows an attacker to gain access to restricted data or cause arbitrary code execution if they can establish control from grub\u0027s memory allocation pattern.(CVE-2022-28736)\r\n\r\nA flaw was found in grub2 when handling JPEG images. This flaw allows an attacker to craft a malicious JPEG image, which leads to an underflow on a grub2\u0027s internal pointer, leading to a heap-based out-of-bounds write. Secure-boot mechanisms circumvention and arbitrary code execution may also be achievable.(CVE-2021-3697)\r\n\r\nA flaw was found in grub2 when handling a PNG image header. When decoding the data contained in the Huffman table at the PNG file header, an out-of-bounds write may happen on grub\u0027s heap.(CVE-2021-3696)\r\n\r\nA flaw was found in grub2 when handling IPv4 packets. This flaw allows an attacker to craft a malicious packet, triggering an integer underflow in grub code. Consequently, the memory allocation for handling the packet data may be smaller than the size needed. This issue causes an out-of-bands write during packet handling, compromising data integrity, confidentiality issues, a denial of service, and remote code execution.(CVE-2022-28733)\r\n\r\nA flaw was found in grub 2, where a crafted 16-bit grayscale PNG image may lead to an out-of-bounds write. This flaw allows an attacker to corrupt the data on the heap portion of the grub2\u0027s memory, leading to possible code execution and the circumvention of the secure boot mechanism.(CVE-2021-3695)\r\n\r\nA flaw was found in grub2. The shim_lock verifier from grub2 allows non-kernel files to be loaded when secure boot is enabled, giving the possibility of unverified code or modules to be loaded when it should not be allowed.\n(CVE-2022-28735)",
"id": "OESA-2022-1734",
"modified": "2026-08-06T11:05:00Z",
"published": "2022-07-01T11:05:00Z",
"references": [
{
"type": "ADVISORY",
"url": "https://www.openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2022-1734"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2022-28734"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2022-28736"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2021-3697"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2021-3696"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2022-28733"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2021-3695"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2022-28735"
}
],
"schema_version": "1.7.2",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
}
],
"summary": "grub2 security update",
"upstream": [
"CVE-2022-28734",
"CVE-2022-28736",
"CVE-2021-3697",
"CVE-2021-3696",
"CVE-2022-28733",
"CVE-2021-3695",
"CVE-2022-28735"
]
}
Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Vulnerability timeline
Sightings and recorded dates, grouped by day · UTC
How durations are calculated
Following the VTEM framework (Black Hat USA 2015), time to patch starts when the vendor or a coordinator was informed, total time to patch at discovery, and disclosure to patch at public disclosure; vendor response time runs from the report to its acknowledgement. Time to exploit and time unpatched start at the earliest discovery or report, falling back to public disclosure. Unpatched time ends at the first recorded patch, or the calculation time when no patch is recorded. Exploitation to patch shows the interval between those two events; a published proof of concept is a public exploit, not exploitation.
Each result shows its source dates. A negative interval means the end event came first; when date-only inputs leave the order open, the result says so. Date-only inputs are approximate. The earliest evidence wins: KEV report dates and sightings are labelled as such. Records describing another vulnerability are listed but never calculated from, and a PoC alone does not establish exploitation. Missing patch evidence does not prove that no patch exists. Filters below change the event list only.
Loading timeline…
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.