CVE-2021-21708 UAF due to php_filter_float() failing

High 8.2 Published Updated

A use-after-free vulnerability in PHP's float filter allows attackers to cause crashes or potentially execute arbitrary code via crafted input.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2021-21708?

CVE-2021-21708 is a high-severity use after free vulnerability in Php Php, published on 27 Feb 2022. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official description

In PHP versions 7.4.x below 7.4.28, 8.0.x below 8.0.16, and 8.1.x below 8.1.3, when using filter functions with FILTER_VALIDATE_FLOAT filter and min/max limits, if the filter fails, there is a possibility to trigger use of allocated memory after free, which can result it crashes, and potentially in overwrite of other memory chunks and RCE. This issue affects: code that uses FILTER_VALIDATE_FLOAT with min/max limits.

Weakness: CWE-416

Which versions are affected by CVE-2021-21708?

3 open source packages ship an affected version, including libphp, php and php-min. It affects 1 product.

PackageAffectedFixed in
libphp BitnamiFrom 7.4.07.4.28, 8.0.16, 8.1.3
php BitnamiFrom 7.4.07.4.28, 8.0.16, 8.1.3
php-min BitnamiFrom 7.4.07.4.28, 8.0.16, 8.1.3
Linux distribution packages (37)
apcu-panel Red Hat:rhel_aus:8.4::appstreamAll versions0:5.1.18-1.module+el8.3.0+6678+b09f589e
libzip Red Hat:rhel_aus:8.4::appstreamAll versions0:1.6.1-1.module+el8.3.0+6678+b09f589e
libzip-debuginfo Red Hat:rhel_aus:8.4::appstreamAll versions0:1.6.1-1.module+el8.3.0+6678+b09f589e
libzip-debugsource Red Hat:rhel_aus:8.4::appstreamAll versions0:1.6.1-1.module+el8.3.0+6678+b09f589e
libzip-devel Red Hat:rhel_aus:8.4::appstreamAll versions0:1.6.1-1.module+el8.3.0+6678+b09f589e
libzip-tools Red Hat:rhel_aus:8.4::appstreamAll versions0:1.6.1-1.module+el8.3.0+6678+b09f589e
libzip-tools-debuginfo Red Hat:rhel_aus:8.4::appstreamAll versions0:1.6.1-1.module+el8.3.0+6678+b09f589e
php Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1
php-bcmath Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1
php-bcmath-debuginfo Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1
php-cli Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1
php-cli-debuginfo Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1
php-common Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1
php-common-debuginfo Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1
php-dba Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1
php-dba-debuginfo Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1
php-dbg Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1
php-dbg-debuginfo Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1
php-debuginfo Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1
php-debugsource Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1
php-devel Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1
php-embedded Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1
php-embedded-debuginfo Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1
php-enchant Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1
php-enchant-debuginfo Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1
php-ffi Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1
php-ffi-debuginfo Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1
php-fpm Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1
php-fpm-debuginfo Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1
php-gd Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1
php-gd-debuginfo Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1
php-gmp Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1
php-gmp-debuginfo Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1
php-intl Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1
php-intl-debuginfo Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1
php-json Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1
php-json-debuginfo Red Hat:rhel_aus:8.4::appstreamAll versions0:7.4.6-5.module+el8.4.0+22918+4f86939b.1

Products include Php Php.

How do I fix CVE-2021-21708?

Upgrade libphp to a fixed version for your release line: 7.4.28, 8.0.16 or 8.1.3.

Upgrade to the fixed version. These bugs are found with fuzzing and sanitisers and avoided by memory-safe languages. More about Use after free.

Is CVE-2021-21708 being exploited?

There is no known exploitation of CVE-2021-21708 in the wild and no public exploit code.

All Php Php vulnerabilities

Sources

Also known as BIT-libphp-2021-21708, BIT-php-2021-21708, BIT-php-min-2021-21708, CLSA-2022-1647550779, CLSA-2022-1647550845, DEBIAN-CVE-2021-21708 and 11 more.

Is CVE-2021-21708 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free