GHSA-58FG-62FG-3FCJ
Vulnerability from github – Published: 2026-06-23 22:02 – Updated: 2026-06-23 22:02
VLAI
Summary
phpMyFAQ has Weak Cryptography - SHA1 for Password Hashing
Details
Summary
Attachment passwords are hashed using SHA-1, a cryptographically broken algorithm. SHA-1 has been vulnerable to collision attacks since 2017 (SHAttered).
Details
Affected File : phpmyfaq/src/phpMyFAQ/Attachment/AbstractAttachment.php
Impact
- An attacker can generate SHA-1 collisions to bypass attachment protection
- Risk of password cracking if database is compromised
- Estimated cracking time: < 1 minute for standard attachment
Solution
Use bcrypt:
public function setPassword(string $password): void
{
$this->passwordHash = password_hash($password, PASSWORD_BCRYPT);
}
public function verifyPassword(string $plainPassword): bool
{
return password_verify($plainPassword, $this->passwordHash);
}
Severity
{
"affected": [
{
"database_specific": {
"last_known_affected_version_range": "\u003c= 4.1.3"
},
"package": {
"ecosystem": "Packagist",
"name": "thorsten/phpmyfaq"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "4.1.4"
}
],
"type": "ECOSYSTEM"
}
]
},
{
"database_specific": {
"last_known_affected_version_range": "\u003c= 4.1.3"
},
"package": {
"ecosystem": "Packagist",
"name": "phpmyfaq/phpmyfaq"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "4.1.4"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [
"CVE-2026-48488"
],
"database_specific": {
"cwe_ids": [
"CWE-328"
],
"github_reviewed": true,
"github_reviewed_at": "2026-06-23T22:02:25Z",
"nvd_published_at": "2026-06-08T16:16:43Z",
"severity": "LOW"
},
"details": "### Summary\n\nAttachment passwords are hashed using SHA-1, a cryptographically broken algorithm. SHA-1 has been vulnerable to collision attacks since 2017 (SHAttered).\n\n### Details\n\n**Affected File** : `phpmyfaq/src/phpMyFAQ/Attachment/AbstractAttachment.php`\n\n\u003cimg width=\"810\" height=\"427\" alt=\"image\" src=\"https://github.com/user-attachments/assets/6499a008-3ece-4291-8296-f1d3303ba35c\" /\u003e\n\n\n### Impact\n\n- An attacker can generate SHA-1 collisions to bypass attachment protection\n- Risk of password cracking if database is compromised\n- Estimated cracking time: \u003c 1 minute for standard attachment\n\n### Solution\n\n**Use bcrypt:**\n\n```\npublic function setPassword(string $password): void\n{\n $this-\u003epasswordHash = password_hash($password, PASSWORD_BCRYPT);\n}\n\npublic function verifyPassword(string $plainPassword): bool\n{\n return password_verify($plainPassword, $this-\u003epasswordHash);\n}\n```",
"id": "GHSA-58fg-62fg-3fcj",
"modified": "2026-06-23T22:02:25Z",
"published": "2026-06-23T22:02:25Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/thorsten/phpMyFAQ/security/advisories/GHSA-58fg-62fg-3fcj"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-48488"
},
{
"type": "WEB",
"url": "https://github.com/thorsten/phpMyFAQ/commit/1aa9be6f8a2fa5c527c983826205229fc3129718"
},
{
"type": "PACKAGE",
"url": "https://github.com/thorsten/phpMyFAQ"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:U",
"type": "CVSS_V4"
}
],
"summary": "phpMyFAQ has Weak Cryptography - SHA1 for Password Hashing"
}
Loading…
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
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.
Loading…
Loading…