Thursday, March 28, 2024

15-Year-Old Linux Netfilter Vulnerability Let Hackers Bypass All Modern Security Mitigations

An Information Security Engineer, Andy Nguyen has recently detected a 15-Year-Old Linux Netfilter vulnerability that allows any attackers to bypass all the modern security measures.

Cybersecurity experts have tracked this 15-Year-Old Linux Netfilter vulnerability as “CVE-2021-22555,” and apart from security mitigations, they have also claimed that by exploiting this flaw threat actors can also achieve kernel code execution.

Netfilter Vulnerability

In order to be concocted by the native functions, the structures need to be transformed from user to kernel as well as 32-bit to 64-bit, when in the compatibility mode the IPT_SO_SET_REPLACE or IP6T_SO_SET_REPLACE is summoned.

Here, Andy affirmed that the security flaw is in the “xt_compat_target_from_user()” where with an offset target->targetsize “memset()” is convoked.

by names like TCPMSS, TTL, or NFQUEUE, a user can choose different targets with different structure sizes; but, here, the user won’t be able to control the targetsize.

Exploitation Chain

With 0x4C bytes primitive the usual targets are:-

The security expert, Andy remarked that he won’t able to allocate any victim objects around struct xt_table_info on kernel 5.4 while he was playing around some victim objects.

But, according to Jann Horn earlier to implement accounting separate slabs were used before 5.9; that’s why in the exploit chain the primitive used by Andy should also use the “GFP_KERNEL_ACCOUNT.”

Here, the expert has claimed that the syscall msgsnd() is already used for multiple public exploits since for heap spraying the syscall msgsnd() is a well-known primitive, and not only that even it also uses the “GFP_KERNEL_ACCOUNT.”

Apart from this, Andy also noted that in parallel to his own research of March 2021, one of the security researchers, Alexander Popov also traversed a similar structure in Four Bytes of Power that exploited the flaw “CVE-2021-26708” in the Linux kernel.

Using the msgget() an attacker can easily initiate many message queues, later an attacker can create a single message of the size of the total message queues and send them using msgsnd() for each of the message queues, that is known as primary message.

Now an attacker can follow the struct msg_msg header and spray a lot of messages with the help of unix sockets. An attacker can easily re-craft the fake struct msg_msg after knowing the address of a primary message.

While by reading more than DATALEN_MSG bytes the primary message content could be leaked, and here, from the primary message the leaked mlist.next pointer exposes the secondary message.

Escalating Privileges

In order to trigger the release that will kick off the JOP chain the final stage of the exploit have to close all the pipes. And in order to execute a kernel ROP chain, quickly achieving a kernel stack pivot is necessary, since, finding JOP gadgets is quite hard.

Kernel ROP chain: In this chain, later to resume the execution process at some scratchpad address in kernel Andy saved the value of RBP. And here to install kernel credentials, he summoned commit_creds(prepare_kernel_cred(NULL)) and later to switch the namespace of process 1 to the one of the init process summoned switch_task_namespaces(find_task_by_vpid(1), init_nsproxy).

Escaping the container and popping a root shell: In this case, to change mnt, pid, and net namespaces to leave the container and crumble out of the kubernetes pod an attacker will have the root permissions.

You can follow us on Linkedin, Twitter, Facebook for daily Cybersecurity and hacking news updates.

Website

Latest articles

2 Chrome Zero-Days Exploited at Pwn2Own 2024: Patch Now

Google has announced a crucial update to its Chrome browser, addressing several vulnerabilities, including...

The Moon Malware Hacked 6,000 ASUS Routers in 72hours to Use for Proxy

Black Lotus Labs discovered a multi-year campaign by TheMoon malware targeting vulnerable routers and...

Hackers Actively Exploiting Ray AI Framework Flaw to Hack Thousands of Servers

A critical vulnerability in Ray, an open-source AI framework that is widely utilized across...

Chinese Hackers Attacking Southeast Asian Nations With Malware Packages

Cybersecurity researchers at Unit 42 have uncovered a sophisticated cyberespionage campaign orchestrated by two...

CISA Warns of Hackers Exploiting Microsoft SharePoint Server Vulnerability

Cybersecurity and Infrastructure Security Agency (CISA) has warned about a critical vulnerability in Microsoft...

Microsoft Expands Edge Bounty Program to Include WebView2!

Microsoft announced that Microsoft Edge WebView2 eligibility and specific out-of-scope information are now included...

Beware of Free Android VPN Apps that Turn Your Device into Proxies

Cybersecurity experts have uncovered a cluster of Android VPN applications that covertly transform user...
Balaji
Balaji
BALAJI is an Ex-Security Researcher (Threat Research Labs) at Comodo Cybersecurity. Editor-in-Chief & Co-Founder - Cyber Security News & GBHackers On Security.

Mitigating Vulnerability Types & 0-day Threats

Mitigating Vulnerability & 0-day Threats

Alert Fatigue that helps no one as security teams need to triage 100s of vulnerabilities.

  • The problem of vulnerability fatigue today
  • Difference between CVSS-specific vulnerability vs risk-based vulnerability
  • Evaluating vulnerabilities based on the business impact/risk
  • Automation to reduce alert fatigue and enhance security posture significantly

Related Articles