High severity8.8NVD Advisory· Published Mar 17, 2026· Updated Apr 25, 2026
CVE-2026-4208
CVE-2026-4208
Description
The extension fails to properly reset the generated MFA code after successful authentication. This leads to a possible MFA bypass for future login attempts by providing an empty string as MFA code to the extensions MFA provider.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
ralffreit/mfa-emailPackagist | < 1.0.7 | 1.0.7 |
ralffreit/mfa-emailPackagist | >= 2.0.0, < 2.0.1 | 2.0.1 |
Affected products
2Patches
10bb7e85b236a[BUGFIX] Fix a security issue TYPO3-EXT-SA-2026-007
1 file changed · +15 −1
Classes/Mfa/MailProvider.php+15 −1 modified@@ -19,6 +19,7 @@ use TYPO3\CMS\Core\Messaging\FlashMessageService; use TYPO3\CMS\Core\Type\ContextualFeedbackSeverity; use TYPO3\CMS\Core\Utility\GeneralUtility; +use TYPO3\CMS\Core\Utility\MathUtility; use TYPO3\CMS\Core\View\ViewFactoryData; use TYPO3\CMS\Core\View\ViewFactoryInterface; use TYPO3\CMS\Core\View\ViewInterface; @@ -111,9 +112,20 @@ public function verify(ServerRequestInterface $request, MfaProviderPropertyManag $authCodeInput = trim((string)($request->getQueryParams()['authCode'] ?? $request->getParsedBody()['authCode'] ?? '')); $properties = $propertyManager->getProperties(); + if ($authCodeInput === '' || ($properties['authCode'] ?? '') === '') { + // Cannot verify when authCode was not saved or passed empty + return false; + } + if ($authCodeInput !== $properties['authCode']) { - $properties['attempts'] = (isset($properties['attempts']) && (int)$properties['attempts'] ? (int)$properties['attempts'] : 0); + if (!isset($properties['attempts']) || !MathUtility::canBeInterpretedAsInteger($properties['attempts'])) { + $properties['attempts'] = 0; + } $properties['attempts']++; + if ($properties['attempts'] >= $this->getMaxAttempts()) { + // Reset the code + $properties['authCode'] = ''; + } $propertyManager->updateProperties($properties); return false; } @@ -170,6 +182,8 @@ public function update(ServerRequestInterface $request, MfaProviderPropertyManag } $properties = [ + 'attempts' => 0, + 'authCode' => '', 'email' => $email, 'active' => true ];
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
6- github.com/advisories/GHSA-29r8-gvx4-r9w3ghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2026-4208ghsaADVISORY
- typo3.org/security/advisory/typo3-ext-sa-2026-007nvdVendor AdvisoryWEB
- github.com/MrSilaz/mfa_email/commit/0bb7e85b236a5232f7b092915453dd7c3da48f12ghsaWEB
- github.com/MrSilaz/mfa_email/releases/tag/v1.0.7ghsaWEB
- github.com/MrSilaz/mfa_email/releases/tag/v2.0.1ghsaWEB
News mentions
0No linked articles in our index yet.