ghsa-54vg-hcf2-vf9w
Vulnerability from github
Published
2025-08-25 15:32
Modified
2025-08-25 15:32
Severity ?
Details

A stack-based buffer overflow vulnerability exists in the MFER parsing functionality of The Biosig Project libbiosig 3.9.0 and Master Branch (35a819fa). A specially crafted MFER file can lead to arbitrary code execution. An attacker can provide a malicious file to trigger this vulnerability.This vulnerability manifests on line 8970 of biosig.c on the current master branch (35a819fa), when the Tag is 63:

            else if (tag==63) {
                uint8_t tag2=255, len2=255;

                count = 0;
                while ((count<len) && !(FlagInfiniteLength && len2==0 && tag2==0)){
                    curPos += ifread(&tag2,1,1,hdr);
                    curPos += ifread(&len2,1,1,hdr);
                    if (VERBOSE_LEVEL==9)
                        fprintf(stdout,"MFER: tag=%3i chan=%2i len=%-4i tag2=%3i len2=%3i curPos=%i %li count=%4i\n",tag,chan,len,tag2,len2,curPos,iftell(hdr),(int)count);

                    if (FlagInfiniteLength && len2==0 && tag2==0) break;

                    count  += (2+len2);
                    curPos += ifread(&buf,1,len2,hdr);

Here, the number of bytes read is not the Data Length decoded from the current frame in the file (len) but rather is a new length contained in a single octet read from the same input file (len2). Despite this, a stack-based buffer overflow condition can still occur, as the destination buffer is still buf, which has a size of only 128 bytes, while len2 can be as large as 255.

Show details on source website


{
  "affected": [],
  "aliases": [
    "CVE-2025-54489"
  ],
  "database_specific": {
    "cwe_ids": [
      "CWE-121"
    ],
    "github_reviewed": false,
    "github_reviewed_at": null,
    "nvd_published_at": "2025-08-25T14:15:35Z",
    "severity": "CRITICAL"
  },
  "details": "A stack-based buffer overflow vulnerability exists in the MFER parsing functionality of The Biosig Project libbiosig 3.9.0 and Master Branch (35a819fa). A specially crafted MFER file can lead to arbitrary code execution. An attacker can provide a malicious file to trigger this vulnerability.This vulnerability manifests on line 8970 of biosig.c on the current master branch (35a819fa), when the Tag is 63:\n\n                else if (tag==63) {\n                    uint8_t tag2=255, len2=255;\n\n                    count = 0;\n                    while ((count\u003clen) \u0026\u0026 !(FlagInfiniteLength \u0026\u0026 len2==0 \u0026\u0026 tag2==0)){\n                        curPos += ifread(\u0026tag2,1,1,hdr);\n                        curPos += ifread(\u0026len2,1,1,hdr);\n                        if (VERBOSE_LEVEL==9)\n                            fprintf(stdout,\"MFER: tag=%3i chan=%2i len=%-4i tag2=%3i len2=%3i curPos=%i %li count=%4i\\n\",tag,chan,len,tag2,len2,curPos,iftell(hdr),(int)count);\n\n                        if (FlagInfiniteLength \u0026\u0026 len2==0 \u0026\u0026 tag2==0) break;\n\n                        count  += (2+len2);\n                        curPos += ifread(\u0026buf,1,len2,hdr);\n\nHere, the number of bytes read is not the Data Length decoded from the current frame in the file (`len`) but rather is a new length contained in a single octet read from the same input file (`len2`). Despite this, a stack-based buffer overflow condition can still occur, as the destination buffer is still `buf`, which has a size of only 128 bytes, while `len2` can be as large as 255.",
  "id": "GHSA-54vg-hcf2-vf9w",
  "modified": "2025-08-25T15:32:01Z",
  "published": "2025-08-25T15:32:01Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2025-54489"
    },
    {
      "type": "WEB",
      "url": "https://talosintelligence.com/vulnerability_reports/TALOS-2025-2234"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
      "type": "CVSS_V3"
    }
  ]
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…