Speedy Go

speedy-go · by codeandcore · wordpress.org ↗ · SVN ↗
Active installs
60
Current version
2.1.8
Added
2025-10-29
Last updated
2026-07-10 (13d ago)
First seen by beacon
3mo ago
Total downloads
1,753

Statistics

2025-10-29 → 2026-07-02 · 247 days
Downloads today
29
7-day total 123
Week over week
▲ +186%
vs prior 7 days
30-day trend
flat
▲ +20% MoM
Abandonment
●○○○○
install base on one version
Downloads/day Linear trend
6750341702025-102025-122026-012026-032026-042026-052026-07
6549331602026-042026-042026-052026-052026-062026-06
6549331602026-062026-062026-062026-062026-062026-06

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 2mo 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 (11d 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 (22d 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 (1mo 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 (1mo 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 22 2025-10-29 · r3386469 2026-07-09 · r3601057
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 22 commits Active

Versions (15 most recent)

Version Released Download
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 · 1mo ago zip
2.1.0 2026-05-04 · 2mo ago zip
2.0.3 2026-03-16 · 4mo ago zip
2.0.2 2026-03-10 · 4mo ago zip
2.0.1 2026-03-03 · 4mo ago zip
2.0.0 2026-03-03 · 4mo ago zip
1.0.1 2026-02-24 · 5mo ago zip
1.0.0 2025-10-29 · 8mo ago zip