PluginProbe
FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment / 3.1.14
FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment v3.1.14
3.1.14 3.1.13 3.1.12 3.1.11 3.1.10 3.1.9 3.1.8 3.1.7 trunk 1.0.0 1.0.1 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 All 123 releases
← All changes | Inc/Core/Helpers/Integrations.php +15 -2 3.1.9 → 3.1.14 View file →
@@ -1,8 +1,8 @@
1 1 <?php
2 2 /**
3 3 * @package FireBox
4 - * @version 3.1.9
4 + * @version 3.1.14
5 5 *
6 6 * @author FirePlugins <[email protected]>
7 7 * @link https://www.fireplugins.com
8 8 * @copyright Copyright © 2026 FirePlugins All Rights Reserved
@@ -1160,9 +1160,22 @@
1160 1160 {
1161 1161 $key = $field['key'];
1162 1162 $settings_key = $field['settings_key'];
1163 1163 $value = isset($credentials[$key]) && is_scalar($credentials[$key]) ? trim((string) $credentials[$key]) : '';
1164 - $settings[$settings_key] = self::getGlobalAPIKeyEncryption()->encrypt($value);
1164 +
1165 + $encrypted = self::getGlobalAPIKeyEncryption()->encrypt($value);
1166 +
1167 + /**
1168 + * Fail closed. Storing the raw value under a name that implies encryption
1169 + * would leave the credential in the database in cleartext with no signal
1170 + * to anyone, so refuse the whole write instead.
1171 + */
1172 + if ($encrypted === false)
1173 + {
1174 + return false;
1175 + }
1176 +
1177 + $settings[$settings_key] = $encrypted;
1165 1178 }
1166 1179
1167 1180 return update_option('firebox_settings', $settings);
1168 1181 }