Countdown Timer Ultimate
Acquired by EssentialPlugin (malicious campaign) on 2025-05-12.
New committers from that team's naming convention are expected and will not fire takeover events.
source ↗
This plugin is closed on wordpress.org.
Closed 2026-04-07.
- Active installs
- 20k+
- Current version
- 2.6.9.1
- Added
- —
- Last updated
- —
- First seen by beacon
- 10d ago
- Total downloads
- —
Audits (1)
Alerts (0)
No open alerts.
Show 16 resolved alerts
Medium author_younger_than_plugin
Resolved · audit:malicious
2026-04-27 11:03:09 (5d ago)
| Slug | countdown-timer-ultimate |
|---|---|
| Author slug | essentialplugin |
| Author display name | essentialplugin |
| Author employer | Essential Plugin |
| Author member since | 2025-05-12 |
| Earliest plugin commit | 2016-10-01 01:03:27 |
| Plugin age at author join | 3,144 |
| Author age now days | 350 |
| Prior committers | |
| Active installs | 20,000 |
View raw JSON
{
"slug": "countdown-timer-ultimate",
"author_slug": "essentialplugin",
"author_display_name": "essentialplugin",
"author_employer": "Essential Plugin",
"author_member_since": "2025-05-12",
"earliest_plugin_commit": "2016-10-01 01:03:27",
"plugin_age_at_author_join": 3144,
"author_age_now_days": 350,
"prior_committers": [
"plugin-master",
"anoopranawat",
"wponlinesupport",
"frantorres"
],
"active_installs": 20000
}
Critical code_pattern
Resolved · audit:malicious
2026-04-27 11:03:09 (5d ago)
| Slug | countdown-timer-ultimate |
|---|---|
| Pattern | analytics.essentialplugin.com |
| Kind | ioc:domain |
| Version | 2.6.9.1 |
| Hit count | 6 |
| First hit |
|
| Explanation | — |
View raw JSON
{
"slug": "countdown-timer-ultimate",
"pattern": "analytics.essentialplugin.com",
"kind": "ioc:domain",
"version": "2.6.9.1",
"hit_count": 6,
"first_hit": {
"file": "countdown-timer.php",
"line": 42,
"snippet": "<p><?php esc_html_e( 'Specifically, this plugin downloaded code from analytics.essentialplugin.com and installed it in your site, while the specific case can differ, we know that they were installin"
},
"explanation": null
}
Critical code_pattern
Resolved · audit:malicious
2026-04-27 11:03:09 (5d ago)
| Slug | countdown-timer-ultimate |
|---|---|
| Pattern | Plugin Wpos Analytics Data Starts |
| Kind | ioc:code_pattern |
| Version | 2.6.9.1 |
| Hit count | 1 |
| First hit |
|
| Explanation | — |
View raw JSON
{
"slug": "countdown-timer-ultimate",
"pattern": "Plugin Wpos Analytics Data Starts",
"kind": "ioc:code_pattern",
"version": "2.6.9.1",
"hit_count": 1,
"first_hit": {
"file": "countdown-timer.php",
"line": 317,
"snippet": "/* Plugin Wpos Analytics Data Starts */"
},
"explanation": null
}
Critical code_pattern
Resolved · audit:malicious
2026-04-27 11:03:09 (5d ago)
| Slug | countdown-timer-ultimate |
|---|---|
| Pattern | unserialize_after_remote_call |
| Kind | builtin |
| Version | 2.6.9.1 |
| Hit count | 1 |
| First hit |
|
| Explanation | a remote HTTP fetch (`wp_remote_*` / `curl_exec`) is followed by `@unserialize` within the same file — classic PHP Object Injection C2 gadget. The error-suppressed form is the tell: legit code wants to know when deserialize fails; attackers suppress so malformed gadgets do not leak. A real finding regardless of author intent: any plugin that deserializes remote responses without validation is a latent RCE chain if the remote endpoint is ever compromised. |
View raw JSON
{
"slug": "countdown-timer-ultimate",
"pattern": "unserialize_after_remote_call",
"kind": "builtin",
"version": "2.6.9.1",
"hit_count": 1,
"first_hit": {
"file": "wpos-analytics/includes/class-anylc-admin.php",
"line": 696,
"snippet": "L690: $data = @file_get_contents($url); \u2192 L696: $info = @unserialize($data);"
},
"explanation": "a remote HTTP fetch (`wp_remote_*` / `curl_exec`) is followed by `@unserialize` within the same file \u2014 classic PHP Object Injection C2 gadget. The error-suppressed form is the tell: legit code wants to know when deserialize fails; attackers suppress so malformed gadgets do not leak. A real finding regardless of author intent: any plugin that deserializes remote responses without validation is a latent RCE chain if the remote endpoint is ever compromised."
}
Critical code_pattern
Resolved · audit:malicious
2026-04-27 11:03:09 (5d ago)
| Slug | countdown-timer-ultimate |
|---|---|
| Pattern | Wpos_Anylc_Admin |
| Kind | ioc:code_pattern |
| Version | 2.6.9.1 |
| Hit count | 6 |
| First hit |
|
| Explanation | — |
View raw JSON
{
"slug": "countdown-timer-ultimate",
"pattern": "Wpos_Anylc_Admin",
"kind": "ioc:code_pattern",
"version": "2.6.9.1",
"hit_count": 6,
"first_hit": {
"file": "wpos-analytics/includes/class-anylc-admin.php",
"line": 15,
"snippet": "class Wpos_Anylc_Admin {"
},
"explanation": null
}
Critical code_pattern
Resolved · audit:malicious
2026-04-27 11:03:09 (5d ago)
| Slug | countdown-timer-ultimate |
|---|---|
| Pattern | wpos_rest_api_init |
| Kind | ioc:code_pattern |
| Version | 2.6.9.1 |
| Hit count | 2 |
| First hit |
|
| Explanation | — |
View raw JSON
{
"slug": "countdown-timer-ultimate",
"pattern": "wpos_rest_api_init",
"kind": "ioc:code_pattern",
"version": "2.6.9.1",
"hit_count": 2,
"first_hit": {
"file": "wpos-analytics/includes/class-anylc-admin.php",
"line": 72,
"snippet": "add_action( 'rest_api_init', array($this, 'wpos_rest_api_init') );"
},
"explanation": null
}
Critical code_pattern
Resolved · audit:malicious
2026-04-27 11:03:09 (5d ago)
| Slug | countdown-timer-ultimate |
|---|---|
| Pattern | wpos_handle_analytics_request |
| Kind | ioc:code_pattern |
| Version | 2.6.9.1 |
| Hit count | 2 |
| First hit |
|
| Explanation | — |
View raw JSON
{
"slug": "countdown-timer-ultimate",
"pattern": "wpos_handle_analytics_request",
"kind": "ioc:code_pattern",
"version": "2.6.9.1",
"hit_count": 2,
"first_hit": {
"file": "wpos-analytics/includes/class-anylc-admin.php",
"line": 593,
"snippet": "'callback' => array( $this, 'wpos_handle_analytics_request' ),"
},
"explanation": null
}
Critical code_pattern
Resolved · audit:malicious
2026-04-27 11:03:09 (5d ago)
| Slug | countdown-timer-ultimate |
|---|---|
| Pattern | wpos_get_plugin_version_by_file |
| Kind | ioc:code_pattern |
| Version | 2.6.9.1 |
| Hit count | 2 |
| First hit |
|
| Explanation | — |
View raw JSON
{
"slug": "countdown-timer-ultimate",
"pattern": "wpos_get_plugin_version_by_file",
"kind": "ioc:code_pattern",
"version": "2.6.9.1",
"hit_count": 2,
"first_hit": {
"file": "wpos-analytics/includes/class-anylc-admin.php",
"line": 657,
"snippet": "$version = $this->wpos_get_plugin_version_by_file($matching_product['file']);"
},
"explanation": null
}
Critical code_pattern
Resolved · audit:malicious
2026-04-27 11:03:09 (5d ago)
| Slug | countdown-timer-ultimate |
|---|---|
| Pattern | wpos_process_monthly_data |
| Kind | ioc:code_pattern |
| Version | 2.6.9.1 |
| Hit count | 3 |
| First hit |
|
| Explanation | — |
View raw JSON
{
"slug": "countdown-timer-ultimate",
"pattern": "wpos_process_monthly_data",
"kind": "ioc:code_pattern",
"version": "2.6.9.1",
"hit_count": 3,
"first_hit": {
"file": "wpos-analytics/includes/class-anylc-admin.php",
"line": 545,
"snippet": "$this->wpos_process_monthly_data( $this->analytics_slugs );"
},
"explanation": null
}
Critical code_pattern
Resolved · audit:malicious
2026-04-27 11:03:09 (5d ago)
| Slug | countdown-timer-ultimate |
|---|---|
| Pattern | https://analytics.essentialplugin.com |
| Kind | ioc:url |
| Version | 2.6.9.1 |
| Hit count | 5 |
| First hit |
|
| Explanation | — |
View raw JSON
{
"slug": "countdown-timer-ultimate",
"pattern": "https://analytics.essentialplugin.com",
"kind": "ioc:url",
"version": "2.6.9.1",
"hit_count": 5,
"first_hit": {
"file": "wpos-analytics/includes/class-anylc-admin.php",
"line": 17,
"snippet": "public $analytics_endpoint\t= 'https://analytics.essentialplugin.com';"
},
"explanation": null
}
Critical code_pattern
Resolved · audit:malicious
2026-04-27 11:03:09 (5d ago)
| Slug | countdown-timer-ultimate |
|---|---|
| Pattern | $analytics_endpoint |
| Kind | ioc:code_pattern |
| Version | 2.6.9.1 |
| Hit count | 1 |
| First hit |
|
| Explanation | — |
View raw JSON
{
"slug": "countdown-timer-ultimate",
"pattern": "$analytics_endpoint",
"kind": "ioc:code_pattern",
"version": "2.6.9.1",
"hit_count": 1,
"first_hit": {
"file": "wpos-analytics/includes/class-anylc-admin.php",
"line": 17,
"snippet": "public $analytics_endpoint\t= 'https://analytics.essentialplugin.com';"
},
"explanation": null
}
Critical code_pattern
Resolved · audit:malicious
2026-04-27 11:03:09 (5d ago)
| Slug | countdown-timer-ultimate |
|---|---|
| Pattern | wpos_monthly_cron_hook |
| Kind | ioc:code_pattern |
| Version | 2.6.9.1 |
| Hit count | 4 |
| First hit |
|
| Explanation | — |
View raw JSON
{
"slug": "countdown-timer-ultimate",
"pattern": "wpos_monthly_cron_hook",
"kind": "ioc:code_pattern",
"version": "2.6.9.1",
"hit_count": 4,
"first_hit": {
"file": "wpos-analytics/includes/class-anylc-admin.php",
"line": 69,
"snippet": "add_action( 'wpos_monthly_cron_hook', array($this, 'wpos_monthly_cron_hook_fn') );"
},
"explanation": null
}
Critical new_committer_young_account
Resolved · superseded_by_audit
2026-04-22 02:15:53 (10d ago)
| Slug | countdown-timer-ultimate |
|---|---|
| Committer | essentialplugin |
| Display name | essentialplugin |
| Member since | 2025-05-12 |
| First commit at | 2025-08-08 17:09:06 |
| Account age at first commit | 88 |
| Commit count | 4 |
| Active installs | 20,000 |
View raw JSON
{
"slug": "countdown-timer-ultimate",
"committer": "essentialplugin",
"display_name": "essentialplugin",
"member_since": "2025-05-12",
"first_commit_at": "2025-08-08 17:09:06",
"account_age_at_first_commit": 88,
"commit_count": 4,
"active_installs": 20000
}
Critical new_committer_young_account
Resolved · audit:malicious
2026-04-22 00:51:39 (10d ago)
| Slug | countdown-timer-ultimate |
|---|---|
| Committer | essentialplugin |
| Display name | essentialplugin |
| Member since | 2025-05-12 |
| First commit at | 2025-08-08 17:09:06 |
| Account age at first commit | 88 |
| Commit count | 4 |
| Active installs | 20,000 |
View raw JSON
{
"slug": "countdown-timer-ultimate",
"committer": "essentialplugin",
"display_name": "essentialplugin",
"member_since": "2025-05-12",
"first_commit_at": "2025-08-08 17:09:06",
"account_age_at_first_commit": 88,
"commit_count": 4,
"active_installs": 20000
}
Critical new_committer_young_account
Resolved · deduped
2026-04-21 23:49:17 (10d ago)
| Slug | countdown-timer-ultimate |
|---|---|
| Committer | essentialplugin |
| Display name | essentialplugin |
| Member since | 2025-05-12 |
| First commit at | 2025-08-08 17:09:06 |
| Account age at first commit | 88 |
| Commit count | 4 |
| Active installs | 20,000 |
View raw JSON
{
"slug": "countdown-timer-ultimate",
"committer": "essentialplugin",
"display_name": "essentialplugin",
"member_since": "2025-05-12",
"first_commit_at": "2025-08-08 17:09:06",
"account_age_at_first_commit": 88,
"commit_count": 4,
"active_installs": 20000
}
Critical new_committer_young_account
Resolved · deduped
2026-04-21 18:24:41 (10d ago)
| Slug | countdown-timer-ultimate |
|---|---|
| Committer | essentialplugin |
| Display name | Essential Plugin |
| Member since | 2025-05-12 |
| First commit at | 2025-08-08 17:09:06 |
| Account age at first commit | 88 |
| Commit count | 4 |
| Active installs | 20,000 |
View raw JSON
{
"slug": "countdown-timer-ultimate",
"committer": "essentialplugin",
"display_name": "Essential Plugin",
"member_since": "2025-05-12",
"first_commit_at": "2025-08-08 17:09:06",
"account_age_at_first_commit": 88,
"commit_count": 4,
"active_installs": 20000
}SVN committers (5)
Accounts with actual commit access to countdown-timer-ultimate on plugins.svn.wordpress.org, reconstructed from svn log. This is the list that matters for ownership changes — not the readme contributors.
| Committer | Member since | Commits | First commit | Latest commit |
|---|---|---|---|---|
| wponlinesupport | 2015-09-02 | 57 | 2018-12-06 · r1986624 | 2025-05-16 · r3294619 |
| anoopranawat | 2013-06-24 | 43 | 2016-10-01 · r1506371 | 2022-01-13 · r2656958 |
| essentialplugin Young account | 2025-05-12 | 4 | 2025-08-08 · r3341771 | 2026-02-19 · r3465313 |
| Francisco Torres | 2012-02-08 | 1 | 2026-04-07 · r3501130 | 2026-04-07 · r3501130 |
| plugin-master | 2007-03-09 | 1 | 2016-10-01 · r1506222 | 2016-10-01 · r1506222 |
Readme contributors (1)
Names the plugin's readme declares as contributors. A soft signal — anyone can be listed. The SVN access column is the ground-truth cross-reference: does this contributor actually commit code?
| Contributor | Member since | SVN access | Status |
|---|---|---|---|
| essentialplugin | 2025-05-12 | 4 commits | Active |
Versions (16 most recent)
| Version | Released | Download |
|---|---|---|
| 2.6.9.1 | 2026-04-07 · 24d ago | — |
| 2.6.9 | 2026-02-19 · 2mo ago | — |
| 2.6.8 | 2025-11-12 · 5mo ago | — |
| 2.6.7 | 2025-08-08 · 8mo ago | — |
| 2.6.6 | 2025-05-16 · 11mo ago | — |
| 2.6.5 | 2025-05-14 · 11mo ago | — |
| 2.6.4 | 2025-01-11 · 1y ago | — |
| 2.6.3 | 2025-01-11 · 1y ago | — |
| 2.6.2 | 2024-11-05 · 1y ago | — |
| 2.6.1 | 2024-07-30 · 1y ago | — |
| 2.1 | 2023-02-24 · 3y ago | — |
| 1.4 | 2021-05-14 · 4y ago | — |
| 1.2.5 | 2020-10-29 · 5y ago | — |
| 1.1.4 | 2018-08-22 · 7y ago | — |
| 1.1.2 | 2017-07-20 · 8y ago | — |
| 1.0.0 | 2016-10-03 · 9y ago | — |