FlatPM – Ad Manager, AdSense and Custom Code Security & Risk Analysis

wordpress.org/plugins/flatpm-wp

Flat PM is an ad management plugin. You might be thinking, "why do I need it?". It's simple: this is the best plugin for organizing ads …

10K active installs v3.2.3 PHP 5.6+ WP 5.9+ Updated Jan 7, 2026
ad-injectionad-managerad-rotationads-plugincustom-code
96
A · Safe
CVEs total3
Unpatched0
Last CVEJan 20, 2026
Safety Verdict

Is FlatPM – Ad Manager, AdSense and Custom Code Safe to Use in 2026?

Generally Safe

Score 96/100

FlatPM – Ad Manager, AdSense and Custom Code has a strong security track record. Known vulnerabilities have been patched promptly. It's a solid choice for most WordPress installations.

3 known CVEsLast CVE: Jan 20, 2026Updated 4mo ago
Risk Assessment

The flatpm-wp v3.2.3 plugin exhibits a mixed security posture. On the positive side, the plugin demonstrates strong adherence to secure coding practices by exclusively using prepared statements for SQL queries and largely implementing proper output escaping. Furthermore, all identified entry points, including AJAX handlers and shortcodes, appear to have authentication checks, which significantly reduces the immediate risk of unauthorized access. The absence of unpatched CVEs and critical/high severity taint flows is also a positive indicator.

However, several areas warrant attention. The presence of the `unserialize` function is a known risk, as it can lead to arbitrary object injection if not handled with extreme care and input validation. While the taint analysis did not flag critical or high severity flows related to this, the potential for misuse remains. The vulnerability history reveals a past pattern of medium severity Cross-Site Scripting (XSS) vulnerabilities, with the last one being relatively recent. While currently unpatched, this history suggests a tendency for input sanitization issues to arise in the plugin, which could re-emerge.

In conclusion, flatpm-wp v3.2.3 has made significant strides in securing its codebase, particularly regarding database interactions and output handling. The robust use of prepared statements and high rate of output escaping are commendable. Nevertheless, the continued presence of dangerous functions like `unserialize` and a historical susceptibility to XSS vulnerabilities necessitate continued vigilance and thorough code auditing to prevent future security incidents.

Key Concerns

  • Presence of dangerous unserialize function
  • Past history of medium XSS vulnerabilities
  • One unsanitized path in taint analysis
Vulnerabilities
3 published

FlatPM – Ad Manager, AdSense and Custom Code Security Vulnerabilities

CVEs by Year

1 CVE in 2022
2022
1 CVE in 2024
2024
1 CVE in 2026
2026
Patched Has unpatched

Severity Breakdown

Medium
3

3 total CVEs

CVE-2026-0690medium · 6.4Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

FlatPM – Ad Manager, AdSense and Custom Code <= 3.2.2 - Authenticated (Contributor+) Stored Cross-Site Scripting via Custom Post Meta

Jan 20, 2026 Patched in 3.2.3 (1d)
CVE-2024-29803medium · 6.4Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

FlatPM < 3.1.05 - Authenticated (Contributor+) Stored Cross-Site Scripting

Mar 25, 2024 Patched in 3.1.05 (8d)
CVE-2022-3934medium · 6.1Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Flat PM <= 2.661 - Reflected Cross-Site Scripting

Nov 17, 2022 Patched in 2.662 (432d)
Version History

FlatPM – Ad Manager, AdSense and Custom Code Release Timeline

v3.2.3Current
v3.2.21 CVE
v3.2.11 CVE
v3.2.01 CVE
v3.1.171 CVE
v3.1.161 CVE
v3.1.151 CVE
v3.1.141 CVE
v3.1.131 CVE
v3.1.121 CVE
v3.1.111 CVE
v3.1.101 CVE
v3.1.051 CVE
Code Analysis
Analyzed Mar 16, 2026

FlatPM – Ad Manager, AdSense and Custom Code Code Analysis

Dangerous Functions
2
Raw SQL Queries
0
13 prepared
Unescaped Output
89
811 escaped
Nonce Checks
2
Capability Checks
3
File Operations
12
External Requests
1
Bundled Libraries
0

Dangerous Functions Found

unserialize$data = @unserialize( $meta_value );path\functions\ajax-handlers\block\copy.php:81
unserialize$data = @unserialize( $meta_value );path\functions\ajax-handlers\block\copy_to_folder.php:85

SQL Query Safety

100% prepared13 total queries

Output Escaping

90% escaped900 total outputs
Data Flows · Security
1 unsanitized

Data Flow Analysis

12 flows1 with unsanitized paths
<ip> (ip.php:0)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

FlatPM – Ad Manager, AdSense and Custom Code Attack Surface

Entry Points16
Unprotected0

AJAX Handlers 1

authwp_ajax_flat_pm_adminpath\functions\flat-ajax_admin.php:46

Shortcodes 15

[flat_pm] path\functions\flat-core.php:704
[fpm_post_id] path\functions\flat-shortcode.php:180
[fpm_post_type] path\functions\flat-shortcode.php:181
[fpm_post_date] path\functions\flat-shortcode.php:182
[fpm_post_time] path\functions\flat-shortcode.php:183
[fpm_post_modified] path\functions\flat-shortcode.php:184
[fpm_post_slug] path\functions\flat-shortcode.php:185
[fpm_post_title] path\functions\flat-shortcode.php:186
[fpm_url] path\functions\flat-shortcode.php:188
[fpm_title] path\functions\flat-shortcode.php:189
[fpm_description] path\functions\flat-shortcode.php:190
[fpm_term_id] path\functions\flat-shortcode.php:192
[fpm_term_name] path\functions\flat-shortcode.php:193
[fpm_term_slug] path\functions\flat-shortcode.php:194
[fpm_block_id] path\functions\flat-shortcode.php:196
WordPress Hooks 36
actionwidgets_initflat_pm.php:53
actionadmin_enqueue_scriptsflat_pm.php:58
actionadmin_footerflat_pm.php:77
actionadmin_print_stylesflat_pm.php:78
actionadmin_print_scriptsflat_pm.php:79
actionadmin_menuflat_pm.php:183
actionadmin_headflat_pm.php:185
actionplugins_loadedflat_pm.php:194
filterplugin_row_metaflat_pm.php:207
filterwidget_textpath\functions\flat-core.php:7
filterwp_inline_script_attributespath\functions\flat-core.php:8
filterrocket_exclude_defer_jspath\functions\flat-core.php:24
filterrocket_delay_js_exclusionspath\functions\flat-core.php:25
filterlitespeed_optimize_js_excludespath\functions\flat-core.php:26
filterlitespeed_optm_js_defer_excpath\functions\flat-core.php:27
actionadmin_noticespath\functions\flat-core.php:625
actionadd_meta_boxespath\functions\flat-core.php:684
actionsave_postpath\functions\flat-core.php:685
actioninitpath\functions\flat-core.php:686
actionsaved_termpath\functions\flat-core.php:687
actiondelete_termpath\functions\flat-core.php:688
actionadmin_initpath\functions\flat-core.php:690
actionpre_get_postspath\functions\flat-core.php:699
actionadmin_headpath\functions\flat-core.php:700
filterthe_contentpath\functions\flat-filter_content.php:986
filterthe_contentpath\functions\flat-filter_content.php:988
filterthe_contentpath\functions\flat-filter_content.php:993
filterterm_descriptionpath\functions\flat-filter_content.php:999
filterthe_contentpath\functions\flat-filter_content.php:1000
filterthe_contentpath\functions\flat-filter_content.php:1004
filterterm_descriptionpath\functions\flat-filter_content.php:1008
filterwp_headpath\functions\flat-filter_content.php:1011
actionwp_headpath\functions\flat-header_footer.php:37
actionwp_footerpath\functions\flat-header_footer.php:38
actionwp_headpath\functions\flat-scripts.php:56
actionadmin_headpath\functions\flat-scripts.php:57
Maintenance & Trust

FlatPM – Ad Manager, AdSense and Custom Code Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedJan 7, 2026
PHP min version5.6
Downloads183K

Community Trust

Rating92/100
Number of ratings9
Active installs10K
Developer Profile

FlatPM – Ad Manager, AdSense and Custom Code Developer Profile

Mikhail Flat

1 plugin · 10K total installs

76
trust score
Avg Security Score
96/100
Avg Patch Time
147 days
View full developer profile
Detection Fingerprints

How We Detect FlatPM – Ad Manager, AdSense and Custom Code

Patterns used to identify this plugin on WordPress sites during automated security audits and web crawling.

Asset Fingerprints

Asset Paths
/wp-content/plugins/flatpm-wp/assets/admin/css/materialize.css/wp-content/plugins/flatpm-wp/assets/admin/css/timesheet.css/wp-content/plugins/flatpm-wp/assets/admin/css/coloris.css/wp-content/plugins/flatpm-wp/assets/admin/css/custom.css/wp-content/plugins/flatpm-wp/assets/admin/css/codemirror.css/wp-content/plugins/flatpm-wp/assets/admin/js/sortable.js/wp-content/plugins/flatpm-wp/assets/admin/js/timesheet.js/wp-content/plugins/flatpm-wp/assets/admin/js/css2xpath.js+4 more
Version Parameters
flatpm-wp/assets/admin/css/materialize.css?ver=flatpm-wp/assets/admin/css/timesheet.css?ver=flatpm-wp/assets/admin/css/coloris.css?ver=flatpm-wp/assets/admin/css/custom.css?ver=flatpm-wp/assets/admin/css/codemirror.css?ver=flatpm-wp/assets/admin/js/sortable.js?ver=flatpm-wp/assets/admin/js/timesheet.js?ver=flatpm-wp/assets/admin/js/css2xpath.js?ver=flatpm-wp/assets/admin/js/materialize.js?ver=flatpm-wp/assets/admin/js/chartjs.js?ver=flatpm-wp/assets/admin/js/coloris.js?ver=flatpm-wp/assets/admin/js/custom.js?ver=

HTML / DOM Fingerprints

CSS Classes
fpm-example-code
Data Attributes
data-id="confirm-insert-"
JS Globals
wp.codeEditorflatpm_l10n
FAQ

Frequently Asked Questions about FlatPM – Ad Manager, AdSense and Custom Code