Property Hive

propertyhive · by propertyhive · wordpress.org ↗ · SVN ↗
Active installs
3k+
Current version
2.4.0
Added
2015-11-30
Last updated
2026-09-23 (25d ago)
First seen by beacon
6mo ago
Total downloads
225,057

Statistics

2024-06-17 → 2026-09-08 · 802 days
Downloads today
36
7-day total 278
Week over week
▲ +11%
vs prior 7 days
30-day trend
flat
▼ -70% MoM
Abandonment
●○○○○
downloads down >40% YoY
Downloads/day Linear trend
1k84256228102024-062024-102025-032025-072025-122026-042026-09
93570146823402026-052026-062026-062026-072026-072026-08
6045301502026-072026-082026-082026-082026-082026-09

Active versions

2.22.1
2.2 · 79.4%2.1 · 16.6%other · 4.0%

Ratings

5★
90
4★
0
3★
0
2★
1
1★
2

Support: 0/0 resolved

Alerts (0)

No open alerts.

Show 2 resolved alerts
Critical code_pattern Resolved · fp_legacy_code_pattern_lowinstalls 2026-10-06 12:07:00 (12d ago)
Slugpropertyhive
Patternunserialize_after_remote_call
Kindbuiltin
Version2.4.0
Hit count1
First hit
File
includes/class-ph-licenses.php
Line
531
Snippet
L525: if ( 200 !== wp_remote_retrieve_response_code( $request ) || '' === wp_remote_retrieve_b → L531: $body = @unserialize($request['body'], ['allowed_classes' => 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": "propertyhive",
    "pattern": "unserialize_after_remote_call",
    "kind": "builtin",
    "version": "2.4.0",
    "hit_count": 1,
    "first_hit": {
        "file": "includes/class-ph-licenses.php",
        "line": 531,
        "snippet": "L525: if ( 200 !== wp_remote_retrieve_response_code( $request ) || '' === wp_remote_retrieve_b  \u2192  L531: $body = @unserialize($request['body'], ['allowed_classes' => 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_code_scan_delta_routine 2026-10-04 11:48:51 (14d ago)
Slugpropertyhive
Previous version2.2.6
Current version2.4.0
New findings
PatternKindFileLineSnippetConfidenceDetails
base64_decodebuiltinpropertyhive.php453$decoded = base64_decode( $encoded_token, true );medium—
unserialize_after_remote_callbuiltinincludes/class-ph-licenses.php531L525: if ( 200 !== wp_remote_retrieve_response_code( $request ) || '' === wp_remote_retrieve_b → L531: $body = @unserialize($request['body'], ['allowed_classes' => false]);high—
remote_enqueuebuiltinincludes/elementor-widgets/property-tabbed-details.php847wp_enqueue_script( 'propertyhive-facebook-embed', 'https://connect.facebook.net/en_GB/sdk.js#xfbml=1&version=v20.0', array(), null, true );medium
Url
https://connect.facebook.net/en_GB/sdk.js#xfbml=1&version=v20.0
Url host
connect.facebook.net
remote_enqueuebuiltinincludes/elementor-widgets/property-embedded-virtual-tours.php139wp_enqueue_script( 'propertyhive-instagram-embed', 'https://www.instagram.com/embed.js', array(), null, true );medium
Url
https://www.instagram.com/embed.js
Url host
www.instagram.com
base64_decodebuiltinincludes/admin/class-ph-admin.php164$decoded_slug = base64_decode( $encoded_slug, true );medium—
base64_decodebuiltinincludes/admin/class-ph-admin.php165$decoded_plugin = base64_decode( $encoded_plugin, true );medium—
New finding count6
View raw JSON
{
    "slug": "propertyhive",
    "previous_version": "2.2.6",
    "current_version": "2.4.0",
    "new_findings": [
        {
            "pattern": "base64_decode",
            "kind": "builtin",
            "file": "propertyhive.php",
            "line": 453,
            "snippet": "$decoded = base64_decode( $encoded_token, true );",
            "confidence": "medium"
        },
        {
            "pattern": "unserialize_after_remote_call",
            "kind": "builtin",
            "file": "includes/class-ph-licenses.php",
            "line": 531,
            "snippet": "L525: if ( 200 !== wp_remote_retrieve_response_code( $request ) || '' === wp_remote_retrieve_b  \u2192  L531: $body = @unserialize($request['body'], ['allowed_classes' => false]);",
            "confidence": "high"
        },
        {
            "pattern": "remote_enqueue",
            "kind": "builtin",
            "file": "includes/elementor-widgets/property-tabbed-details.php",
            "line": 847,
            "snippet": "wp_enqueue_script( 'propertyhive-facebook-embed', 'https://connect.facebook.net/en_GB/sdk.js#xfbml=1&version=v20.0', array(), null, true );",
            "confidence": "medium",
            "details": {
                "url": "https://connect.facebook.net/en_GB/sdk.js#xfbml=1&version=v20.0",
                "url_host": "connect.facebook.net"
            }
        },
        {
            "pattern": "remote_enqueue",
            "kind": "builtin",
            "file": "includes/elementor-widgets/property-embedded-virtual-tours.php",
            "line": 139,
            "snippet": "wp_enqueue_script( 'propertyhive-instagram-embed', 'https://www.instagram.com/embed.js', array(), null, true );",
            "confidence": "medium",
            "details": {
                "url": "https://www.instagram.com/embed.js",
                "url_host": "www.instagram.com"
            }
        },
        {
            "pattern": "base64_decode",
            "kind": "builtin",
            "file": "includes/admin/class-ph-admin.php",
            "line": 164,
            "snippet": "$decoded_slug = base64_decode( $encoded_slug, true );",
            "confidence": "medium"
        },
        {
            "pattern": "base64_decode",
            "kind": "builtin",
            "file": "includes/admin/class-ph-admin.php",
            "line": 165,
            "snippet": "$decoded_plugin = base64_decode( $encoded_plugin, true );",
            "confidence": "medium"
        }
    ],
    "new_finding_count": 6
}

SVN committers (2)

Accounts with actual commit access to propertyhive 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
Property Hive 2015-08-09 531 2015-11-30 · r1297184 2026-07-16 · r3610352
plugin-master 2007-03-09 1 2015-08-09 · r1216640 2015-08-09 · r1216640

Readme contributors (2)

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
Property Hive 2015-08-09 531 commits Active
BIOSTALL 2010-07-22 — Active

Versions (100 most recent)

Version Released Download
2.2.6 — zip
2.2.5 — zip
2.2.4 — zip
2.2.3 2026-05-05 · 5mo ago zip
2.2.2 2026-04-20 · 6mo ago zip
2.2.1 2026-04-16 · 6mo ago zip
2.2.0 2026-04-14 · 6mo ago zip
2.1.14 2025-12-01 · 10mo ago zip
2.1.13 2025-11-12 · 11mo ago zip
2.1.12 2025-11-10 · 11mo ago zip
2.1.11 2025-10-14 · 1y ago zip
2.1.10 2025-10-06 · 1y ago zip
2.1.9 2025-09-25 · 1y ago zip
2.1.8 2025-09-22 · 1y ago zip
2.1.7 2025-09-08 · 1y ago zip
2.1.6 2025-08-26 · 1y ago zip
2.1.5 2025-06-26 · 1y ago zip
2.1.4 2025-05-13 · 1y ago zip
2.1.3 2025-04-01 · 1y ago zip
2.1.2 2025-02-27 · 1y ago zip
2.1.1 2024-12-17 · 1y ago zip
2.1.0 2024-12-11 · 1y ago zip
2.0.22 2024-10-18 · 2y ago zip
2.0.21 2024-10-08 · 2y ago zip
2.0.20 2024-09-16 · 2y ago zip
2.0.19 2024-08-06 · 2y ago zip
2.0.18 2024-07-18 · 2y ago zip
2.0.17 2024-06-18 · 2y ago zip
2.0.16 2024-06-04 · 2y ago zip
2.0.15 2024-05-20 · 2y ago zip
2.0.14 2024-05-03 · 2y ago zip
2.0.13 2024-04-22 · 2y ago zip
2.0.12 2024-04-11 · 2y ago zip
2.0.11 2024-03-12 · 2y ago zip
2.0.10 2024-03-01 · 2y ago zip
2.0.9 2024-02-03 · 2y ago zip
2.0.8 2024-01-31 · 2y ago zip
2.0.7 2024-01-04 · 2y ago zip
2.0.6 2024-01-02 · 2y ago zip
2.0.5 2023-12-22 · 2y ago zip
2.0.4 2023-12-06 · 2y ago zip
2.0.3 2023-11-30 · 2y ago zip
2.0.2 2023-11-08 · 2y ago zip
2.0.1 2023-10-27 · 2y ago zip
2.0.0 2023-10-22 · 2y ago zip
1.5.54 2023-10-02 · 3y ago zip
1.5.53 2023-07-31 · 3y ago zip
1.5.52 2023-07-14 · 3y ago zip
1.5.51 2023-06-08 · 3y ago zip
1.5.50 2023-05-22 · 3y ago zip
1.5.49 2023-05-16 · 3y ago zip
1.5.48 2023-04-20 · 3y ago zip
1.5.47 2023-03-31 · 3y ago zip
1.5.46 2023-03-27 · 3y ago zip
1.5.45 2023-01-09 · 3y ago zip
1.5.44 2022-12-06 · 3y ago zip
1.5.43 2022-11-15 · 3y ago zip
1.5.42 2022-11-11 · 3y ago zip
1.5.41 2022-11-11 · 3y ago zip
1.5.40 2022-11-07 · 3y ago zip
1.5.39 2022-10-17 · 4y ago zip
1.5.38 2022-09-14 · 4y ago zip
1.5.37 2022-08-11 · 4y ago zip
1.5.36 2022-07-06 · 4y ago zip
1.5.35 2022-05-18 · 4y ago zip
1.5.34 2022-05-17 · 4y ago zip
1.5.33 2022-03-30 · 4y ago zip
1.5.32 2022-03-10 · 4y ago zip
1.5.31 2022-02-28 · 4y ago zip
1.5.30 2022-01-23 · 4y ago zip
1.5.29 2021-12-21 · 4y ago zip
1.5.28 2021-12-16 · 4y ago zip
1.5.27 2021-12-15 · 4y ago zip
1.5.26 2021-12-08 · 4y ago zip
1.5.25 2021-11-23 · 4y ago zip
1.5.24 2021-11-03 · 4y ago zip
1.5.23 2021-10-25 · 4y ago zip
1.5.22 2021-10-19 · 5y ago zip
1.5.21 2021-09-29 · 5y ago zip
1.5.20 2021-09-07 · 5y ago zip
1.5.19 2021-08-17 · 5y ago zip
1.5.18 2021-07-29 · 5y ago zip
1.5.17 2021-07-20 · 5y ago zip
1.5.16 2021-07-06 · 5y ago zip
1.5.15 2021-06-29 · 5y ago zip
1.5.14 2021-06-23 · 5y ago zip
1.5.13 2021-06-14 · 5y ago zip
1.5.12 2021-06-07 · 5y ago zip
1.5.11 2021-06-01 · 5y ago zip
1.5.10 2021-05-24 · 5y ago zip
1.5.9 2021-05-17 · 5y ago zip
1.5.8 2021-05-10 · 5y ago zip
1.5.7 2021-05-03 · 5y ago zip
1.5.6 2021-04-27 · 5y ago zip
1.5.5 2021-04-20 · 5y ago zip
1.5.4 2021-04-13 · 5y ago zip
1.5.3 2021-04-06 · 5y ago zip
1.5.2 2021-03-29 · 5y ago zip
1.5.1 2021-03-23 · 5y ago zip
1.5.0 2021-03-15 · 5y ago zip