VYPR
Critical severity9.0NVD Advisory· Published Jul 29, 2025· Updated Apr 29, 2026

CVE-2025-8264

CVE-2025-8264

Description

Versions of the package z-push/z-push-dev before 2.7.6 are vulnerable to SQL Injection due to unparameterized queries in the IMAP backend. An attacker can inject malicious commands by manipulating the username field in basic authentication. This allows the attacker to access and potentially modify or delete sensitive data from a linked third-party database. Note: This vulnerability affects Z-Push installations that utilize the IMAP backend and have the IMAP_FROM_SQL_QUERY option configured. Mitigation Change configuration to use the default or LDAP in backend/imap/config.php php define('IMAP_DEFAULTFROM', ''); or php define('IMAP_DEFAULTFROM', 'ldap');

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
z-push/z-push-devPackagist
< 2.7.62.7.6

Patches

1
deb044a40e97

Merge pull request #161 from matidau/cve20258264

https://github.com/Z-Hub/Z-PushmatidauJul 28, 2025via ghsa
1 file changed · +6 1
  • src/backend/imap/user_identity.php+6 1 modified
    @@ -208,9 +208,14 @@ function getIdentityFromSql($username, $domain, $identity, $encode = true) {
             $dbh = new PDO(IMAP_FROM_SQL_DSN, IMAP_FROM_SQL_USER, IMAP_FROM_SQL_PASSWORD, unserialize(IMAP_FROM_SQL_OPTIONS));
             ZLog::Write(LOGLEVEL_DEBUG, sprintf("BackendIMAP->getIdentityFromSql() - Connected to SQL Database"));
     
    -        $sql = str_replace('#username', $username, str_replace('#domain', $domain, IMAP_FROM_SQL_QUERY));
    +        //replace config placeholdes with parameter placeholders
    +        $sql = str_replace("'#username'", ":username", str_replace("'#domain'", ":domain", str_replace("'#username@#domain'", ":usernameatdomain", IMAP_FROM_SQL_QUERY)));
    +        $usernameatdomain = $username . '@' . $domain;
             ZLog::Write(LOGLEVEL_DEBUG, sprintf("BackendIMAP->getIdentityFromSql() - Searching From with filter: %s", $sql));
             $sth = $dbh->prepare($sql);
    +        if(mb_strpos($sql, ':username') !== false) $sth->bindValue(':username', $username, PDO::PARAM_STR);
    +        if(mb_strpos($sql, ':domain') !== false) $sth->bindValue(':domain', $domain, PDO::PARAM_STR);
    +        if(mb_strpos($sql, ':usernameatdomain') !== false) $sth->bindValue(':usernameatdomain', $usernameatdomain, PDO::PARAM_STR);
             $sth->execute();
             $record = $sth->fetch(PDO::FETCH_ASSOC);
             if ($record) {
    

Vulnerability mechanics

Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

9

News mentions

0

No linked articles in our index yet.