Speedy Go

speedy-go · by codeandcore · wordpress.org ↗ · SVN ↗
Active installs
100
Current version
2.1.11
Added
2025-10-29
Last updated
2026-07-21 (1mo ago)
First seen by beacon
4mo ago
Total downloads
2,230

Statistics

2025-10-29 → 2026-07-14 · 259 days
Downloads today
42
7-day total 309
Week over week
▲ +86%
vs prior 7 days
30-day trend
flat
▲ +138% MoM
Abandonment
●○○○○
install base on one version
Downloads/day Linear trend
7153361802025-102025-122026-012026-032026-042026-062026-07
7153361802026-042026-052026-052026-052026-062026-06
7153361802026-062026-062026-062026-062026-072026-07

Active versions

2.1
2.1 · 100.0%

Ratings

No ratings data.

Historical audits (1)

Past investigations, all resolved. No current threat.
  • Suspicious Audit #34 baseline 2.0.3 → head 2.1.0 3mo ago

Alerts (0)

No open alerts.

Show 4 resolved alerts
Critical code_scan_delta Resolved · fp_safe_unserialize_allowed_classes_false 2026-07-12 19:31:54 (1mo ago)
Slugspeedy-go
Previous version2.1.4
Current version2.1.8
New findings
PatternKindFileLineSnippetConfidence
unserialize_after_remote_callbuiltinincludes/api-key-api.php317L309: $resbody = wp_remote_retrieve_body($response); → L317: while (is_string($opts) && @unserialize($opts, ['allowed_classes' => false]) !== false)high
New finding count1
View raw JSON
{
    "slug": "speedy-go",
    "previous_version": "2.1.4",
    "current_version": "2.1.8",
    "new_findings": [
        {
            "pattern": "unserialize_after_remote_call",
            "kind": "builtin",
            "file": "includes/api-key-api.php",
            "line": 317,
            "snippet": "L309: $resbody = wp_remote_retrieve_body($response);  \u2192  L317: while (is_string($opts) && @unserialize($opts, ['allowed_classes' => false]) !== false)",
            "confidence": "high"
        }
    ],
    "new_finding_count": 1
}
Critical code_scan_delta Resolved · known_audit34_speedygo_continuation 2026-07-02 04:08:56 (1mo ago)
Slugspeedy-go
Previous version2.1.1
Current version2.1.3
New findings
PatternKindFileLineSnippetConfidence
unserialize_after_remote_callbuiltinincludes/api-key-api.php304L296: $resbody = wp_remote_retrieve_body($response); → L304: while (is_string($opts) && @unserialize($opts, ['allowed_classes' => false]) !== false)high
New finding count1
View raw JSON
{
    "slug": "speedy-go",
    "previous_version": "2.1.1",
    "current_version": "2.1.3",
    "new_findings": [
        {
            "pattern": "unserialize_after_remote_call",
            "kind": "builtin",
            "file": "includes/api-key-api.php",
            "line": 304,
            "snippet": "L296: $resbody = wp_remote_retrieve_body($response);  \u2192  L304: while (is_string($opts) && @unserialize($opts, ['allowed_classes' => false]) !== false)",
            "confidence": "high"
        }
    ],
    "new_finding_count": 1
}
Critical code_pattern Resolved · fp_safe_unserialize_allowed_classes_false 2026-06-06 05:51:09 (2mo ago)
Slugspeedy-go
Patternunserialize_after_remote_call
Kindbuiltin
Version2.1.1
Hit count1
First hit
File
includes/api-key-api.php
Line
298
Snippet
L290: $resbody = wp_remote_retrieve_body($response); → L298: while (is_string($opts) && @unserialize($opts, ['allowed_classes' => false]) !== false)
Explanationa 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": "speedy-go",
    "pattern": "unserialize_after_remote_call",
    "kind": "builtin",
    "version": "2.1.1",
    "hit_count": 1,
    "first_hit": {
        "file": "includes/api-key-api.php",
        "line": 298,
        "snippet": "L290: $resbody = wp_remote_retrieve_body($response);  \u2192  L298: while (is_string($opts) && @unserialize($opts, ['allowed_classes' => false]) !== false)"
    },
    "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_scan_delta Resolved · fp_safe_unserialize_allowed_classes_false 2026-06-06 02:05:00 (2mo ago)
Slugspeedy-go
Previous version2.1.0
Current version2.1.1
New findings
PatternKindFileLineSnippetConfidence
unserialize_after_remote_callbuiltinincludes/api-key-api.php298L290: $resbody = wp_remote_retrieve_body($response); → L298: while (is_string($opts) && @unserialize($opts, ['allowed_classes' => false]) !== false)high
New finding count1
View raw JSON
{
    "slug": "speedy-go",
    "previous_version": "2.1.0",
    "current_version": "2.1.1",
    "new_findings": [
        {
            "pattern": "unserialize_after_remote_call",
            "kind": "builtin",
            "file": "includes/api-key-api.php",
            "line": 298,
            "snippet": "L290: $resbody = wp_remote_retrieve_body($response);  \u2192  L298: while (is_string($opts) && @unserialize($opts, ['allowed_classes' => false]) !== false)",
            "confidence": "high"
        }
    ],
    "new_finding_count": 1
}

SVN committers (2)

Accounts with actual commit access to speedy-go 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
Code and Core 2024-04-24 27 2025-10-29 · r3386469 2026-07-17 · r3611555
plugin-master 2007-03-09 1 2025-10-29 · r3386438 2025-10-29 · r3386438

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
Code and Core 2024-04-24 27 commits Active

Versions (18 most recent)

Version Released Download
2.1.9 zip
2.1.10 zip
2.1.11 zip
2.1.5 zip
2.1.6 zip
2.1.7 zip
2.1.8 zip
2.1.4 zip
2.1.2 zip
2.1.3 zip
2.1.1 2026-05-25 · 3mo ago zip
2.1.0 2026-05-04 · 3mo ago zip
2.0.3 2026-03-16 · 5mo ago zip
2.0.2 2026-03-10 · 5mo ago zip
2.0.1 2026-03-03 · 5mo ago zip
2.0.0 2026-03-03 · 5mo ago zip
1.0.1 2026-02-24 · 6mo ago zip
1.0.0 2025-10-29 · 9mo ago zip