Every CVE Search/ Get API key

CVE-2025-54801

Fiber Susceptible to Crash via `BodyParser` Due to Unvalidated Large Slice Index in Decoder

8.7 HighFix available

Fiber is an Express inspired web framework written in Go. In versions 2.52.8 and below, when using Fiber's Ctx.BodyParser to parse form data containing a large numeric key that represents a slice index (e.g., test.18446744073704), the application crashes due to an out-of-bounds slice allocation in the underlying schema decoder. The root cause is that the decoder attempts to allocate a slice of length idx + 1 without validating whether the index is within a safe or reasonable range. If the idx is excessively large, this leads to an integer overflow or memory exhaustion, causing a panic or crash. This is fixed in version 2.52.9.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
None
Availability
High

Exploit likelihood

0.42%Up 0.4 points since Aug 6, 2025
90%50%10%1%

What each source reports

CVE List Score used 8.7

Fiber Susceptible to Crash via `BodyParser` Due to Unvalidated Large Slice Index in Decoder

Fiber is an Express inspired web framework written in Go. In versions 2.52.8 and below, when using Fiber's Ctx.BodyParser to parse form data containing a large numeric key that represents a slice index (e.g., test.18446744073704), the application crashes due to an out-of-bounds slice allocation in the underlying schema decoder. The root cause is that the decoder attempts to allocate a slice of length idx + 1 without validating whether the index is within a safe or reasonable range. If the idx is excessively large, this leads to an integer overflow or memory exhaustion, causing a panic or crash. This is fixed in version 2.52.9.

Record
CVE-2025-54801
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-789
Updated
2026-11-02
EUVDEUVD-2025-23668 8.7

Fiber is an Express inspired web framework written in Go. In versions 2.52.8 and below, when using Fiber's Ctx.BodyParser to parse form data containing a large numeric key that represents a slice index (e.g., test.18446744073704), the application crashes due to an out-of-bounds slice allocation in the underlying schema decoder. The root cause is that the decoder attempts to allocate a slice of length idx + 1 without validating whether the index is within a safe or reasonable range. If the idx is excessively large, this leads to an integer overflow or memory exhaustion, causing a panic or crash. This is fixed in version 2.52.9.

Record
EUVD-2025-23668
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-qx2q-88mx-vhg7 8.7

Fiber Crashes in BodyParser Due to Unvalidated Large Slice Index in Decoder

Description

When using Fiber's Ctx.BodyParser to parse form data containing a large numeric key that represents a slice index (e.g., test.18446744073704), the application crashes due to an out-of-bounds slice allocation in the underlying schema decoder.

The root cause is that the decoder attempts to allocate a slice of length idx + 1 without validating whether the index is within a safe or reasonable range. If idx is excessively large, this leads to an integer overflow or memory exhaustion, causing a panic or crash.

Steps to Reproduce

Create a POST request handler that accepts x-www-form-urlencoded data

package main

import (
	"fmt"
	"net/http"

	"github.com/gofiber/fiber/v2"
)

type RequestBody struct {
	NestedContent []*struct{} `form:"test"`
}

func main() {
	app := fiber.New()

	app.Post("/", func(c *fiber.Ctx) error {
		formData := RequestBody{}
		if err := c.BodyParser(&formData); err != nil {
			fmt.Println(err)
			return c.SendStatus(http.StatusUnprocessableEntity)
		}
		return nil
	})

	fmt.Println(app.Listen(":3000"))
}

Run the server and send a POST request with a large numeric key in form data, such as:

curl -v -X POST localhost:3000 --data-raw 'test.18446744073704' \
  -H 'Content-Type: application/x-www-form-urlencoded'

Relevant Code Snippet

Within the decoder's decode method:

idx := parts[0].index
if v.IsNil() || v.Len() < idx+1 {
    value := reflect.MakeSlice(t, idx+1, idx+1)  // <-- Panic/crash occurs here when idx is huge
    if v.Len() < idx+1 {
        reflect.Copy(value, v)
    }
    v.Set(value)
}

The idx is not validated before use, leading to unsafe slice allocation for extremely large values.


Impact

  • Application panic or crash on malicious or malformed input.
  • Potential denial of service (DoS) via memory exhaustion or server crash.
  • Lack of defensive checks in the parsing code causes instability.
Record
GHSA-qx2q-88mx-vhg7
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-789
Updated
2026-11-02
NVD 8.7

Fiber is an Express inspired web framework written in Go. In versions 2.52.8 and below, when using Fiber's Ctx.BodyParser to parse form data containing a large numeric key that represents a slice index (e.g., test.18446744073704), the application crashes due to an out-of-bounds slice allocation in the underlying schema decoder. The root cause is that the decoder attempts to allocate a slice of length idx + 1 without validating whether the index is within a safe or reasonable range. If the idx is excessively large, this leads to an integer overflow or memory exhaustion, causing a panic or crash. This is fixed in version 2.52.9.

Record
CVE-2025-54801
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-789
Updated
2026-11-02
OSV 8.7

Fiber Susceptible to Crash via `BodyParser` Due to Unvalidated Large Slice Index in Decoder

Fiber is an Express inspired web framework written in Go. In versions 2.52.8 and below, when using Fiber's Ctx.BodyParser to parse form data containing a large numeric key that represents a slice index (e.g., test.18446744073704), the application crashes due to an out-of-bounds slice allocation in the underlying schema decoder. The root cause is that the decoder attempts to allocate a slice of length idx + 1 without validating whether the index is within a safe or reasonable range. If the idx is excessively large, this leads to an integer overflow or memory exhaustion, causing a panic or crash. This is fixed in version 2.52.9.

Record
CVE-2025-54801
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-789
Updated
2026-11-02
OSVGHSA-qx2q-88mx-vhg7 8.7

Fiber Crashes in BodyParser Due to Unvalidated Large Slice Index in Decoder

Description

When using Fiber's Ctx.BodyParser to parse form data containing a large numeric key that represents a slice index (e.g., test.18446744073704), the application crashes due to an out-of-bounds slice allocation in the underlying schema decoder.

The root cause is that the decoder attempts to allocate a slice of length idx + 1 without validating whether the index is within a safe or reasonable range. If idx is excessively large, this leads to an integer overflow or memory exhaustion, causing a panic or crash.

Steps to Reproduce

Create a POST request handler that accepts x-www-form-urlencoded data

package main

import (
	"fmt"
	"net/http"

	"github.com/gofiber/fiber/v2"
)

type RequestBody struct {
	NestedContent []*struct{} `form:"test"`
}

func main() {
	app := fiber.New()

	app.Post("/", func(c *fiber.Ctx) error {
		formData := RequestBody{}
		if err := c.BodyParser(&formData); err != nil {
			fmt.Println(err)
			return c.SendStatus(http.StatusUnprocessableEntity)
		}
		return nil
	})

	fmt.Println(app.Listen(":3000"))
}

Run the server and send a POST request with a large numeric key in form data, such as:

curl -v -X POST localhost:3000 --data-raw 'test.18446744073704' \
  -H 'Content-Type: application/x-www-form-urlencoded'

Relevant Code Snippet

Within the decoder's decode method:

idx := parts[0].index
if v.IsNil() || v.Len() < idx+1 {
    value := reflect.MakeSlice(t, idx+1, idx+1)  // <-- Panic/crash occurs here when idx is huge
    if v.Len() < idx+1 {
        reflect.Copy(value, v)
    }
    v.Set(value)
}

The idx is not validated before use, leading to unsafe slice allocation for extremely large values.


Impact

  • Application panic or crash on malicious or malformed input.
  • Potential denial of service (DoS) via memory exhaustion or server crash.
  • Lack of defensive checks in the parsing code causes instability.
Record
GHSA-qx2q-88mx-vhg7
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-789
Updated
2026-11-02
OSVGO-2025-3845 No score

Fiber Crashes in BodyParser Due to Unvalidated Large Slice Index in Decoder in github.com/gofiber/fiber

Fiber Crashes in BodyParser Due to Unvalidated Large Slice Index in Decoder in github.com/gofiber/fiber

Record
GO-2025-3845
Updated
2026-11-02
OSVopenSUSE-SU-2025:15434-1 No score

govulncheck-vulndb-0.0.20250811T192933-1.1 on GA media

These are all security issues fixed in the govulncheck-vulndb-0.0.20250811T192933-1.1 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2025:15434-1
Updated
2026-11-02
OSVSUSE-SU-2025:02912-1 No score

Security update for govulncheck-vulndb

This update for govulncheck-vulndb fixes the following issues:

  • Update to version 0.0.20250814T182633 2025-08-14T18:26:33Z (jsc#PED-11136)

    Go CVE Numbering Authority IDs added or updated with aliases:

    • GO-2025-3765 CVE-2024-44906 GHSA-h4h6-vccr-44h2
    • GO-2025-3829 CVE-2025-54410 GHSA-4vq8-7jfc-9cvp
  • Update to version 0.0.20250811T192933 2025-08-11T19:29:33Z (jsc#PED-11136)

    Go CVE Numbering Authority IDs added or updated with aliases:

    • GO-2025-3822 CVE-2025-53942 GHSA-9g4j-v8w5-7x42
    • GO-2025-3829 CVE-2025-54410 GHSA-4vq8-7jfc-9cvp
    • GO-2025-3830 CVE-2025-54388 GHSA-x4rx-4gw3-53p4
    • GO-2025-3831 CVE-2025-50738 GHSA-hfcf-79gh-f3jc
    • GO-2025-3832 CVE-2021-21411 GHSA-652x-m2gr-hppm
    • GO-2025-3833 CVE-2025-54576 GHSA-7rh7-c77v-6434
    • GO-2025-3834 CVE-2025-54424 GHSA-8j63-96wh-wh3j
    • GO-2025-3835 CVE-2025-54386 GHSA-q6gg-9f92-r9wg
    • GO-2025-3836 CVE-2025-6037 GHSA-6c5r-4wfc-3mcx
    • GO-2025-3837 CVE-2025-5999 GHSA-6h4p-m86h-hhgh
    • GO-2025-3838 CVE-2025-6000 GHSA-mr4h-qf9j-f665
    • GO-2025-3839 CVE-2025-6011 GHSA-mwgr-84fv-3jh9
    • GO-2025-3840 CVE-2025-6004 GHSA-qgj7-fmq2-6cc4
    • GO-2025-3841 CVE-2025-6014 GHSA-qv3p-fmv3-9hww
    • GO-2025-3842 CVE-2025-6015 GHSA-v6r4-35f9-9rpw
    • GO-2025-3843 CVE-2025-8341 GHSA-3c93-92r7-j934
    • GO-2025-3844 CVE-2025-53534 GHSA-fm3m-jrgm-5ppg
    • GO-2025-3845 CVE-2025-54801 GHSA-qx2q-88mx-vhg7
    • GO-2025-3847 CVE-2025-54799 GHSA-q82r-2j7m-9rv4
    • GO-2025-3848 CVE-2025-6013 GHSA-7rx2-769v-hrwf
    • GO-2025-3851 CVE-2025-44779 GHSA-93jv-pvg8-hf3v
    • GO-2025-3852 CVE-2025-7195 GHSA-856v-8qm2-9wjv
    • GO-2025-3853 CVE-2025-55000 GHSA-f7c3-mhj2-9pvg
    • GO-2025-3854 CVE-2025-54999 GHSA-hh28-h22f-8357
    • GO-2025-3855 CVE-2025-54998 GHSA-j3xv-7fxp-gfhx
    • GO-2025-3856 CVE-2025-55003 GHSA-rxp7-9q75-vj3p
    • GO-2025-3857 CVE-2025-54996 GHSA-vf84-mxrq-crqc
    • GO-2025-3858 CVE-2025-54997 GHSA-xp75-r577-cvhp
    • GO-2025-3859 CVE-2025-55001 GHSA-2q8q-8fgw-9p6p
  • Update to version 0.0.20250807T150727 2025-08-07T15:07:27Z (jsc#PED-11136)

    Go CVE Numbering Authority IDs added or updated with aliases:

    • GO-2025-3849 CVE-2025-47907
Record
SUSE-SU-2025:02912-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
github.com/gofiber/fiber/v2
Go
through 2.52.8
2.52.9
github.com/gofiber/fiber/v2
Go
before 2.52.9
2.52.9
govulncheck-vulndb
SUSE:Linux Enterprise Module for Package Hub 15 SP6
From an advisory covering 31 CVEs
before 0.0.20250814T182633-150000.1.98.1
0.0.20250814T182633-150000.1.98.1
govulncheck-vulndb
openSUSE:Leap 15.6
From an advisory covering 31 CVEs
before 0.0.20250814T182633-150000.1.98.1
0.0.20250814T182633-150000.1.98.1
govulncheck-vulndb
openSUSE:Tumbleweed
From an advisory covering 29 CVEs
before 0.0.20250811T192933-1.1
0.0.20250811T192933-1.1

History

History
RecordedChangedSources
affected, facts
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2025-54801 is a high vulnerability (CVSS 8.7) in Gofiber Fiber, published August 5, 2025. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.42%, the 36th percentile. Fixed in github.com/gofiber/fiber/v2 2.52.9.

References

Show 32 moreShow less
MoveEnter Open