heiv gallery 3 Security & Risk Analysis

wordpress.org/plugins/heiv-gallery-3

The Wordpress plugin "Heiv Gallery 3" embeds pictures and albums from an installation of Gallery3 in an article or a post.

30 active installs v0.3.3.4 PHP + WP 2.9.2+ Updated Apr 20, 2014
albumgallerygallery3menaltopictures
85
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is heiv gallery 3 Safe to Use in 2026?

Generally Safe

Score 85/100

heiv gallery 3 has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 12yr ago
Risk Assessment

The "heiv-gallery-3" v0.3.3.4 plugin exhibits a concerning security posture primarily due to a significant attack surface exposed without proper authorization checks. Three out of four identified entry points (AJAX handlers) lack authentication, meaning any unauthenticated user could potentially interact with these functions, creating a wide opening for malicious activity. While SQL queries are safely handled with prepared statements, the alarming 90% of improperly escaped output presents a high risk of Cross-Site Scripting (XSS) vulnerabilities. Furthermore, the presence of 52 dangerous functions, including "unserialize" and "exec," raises red flags, as these can be exploited if user-supplied data is not rigorously validated and sanitized. The plugin's history of zero known vulnerabilities is positive, suggesting a lack of publicly known exploits or a relatively stable codebase. However, this does not negate the inherent risks identified in the static analysis. The critical weakness lies in the unprotected AJAX handlers and the prevalent output escaping issues, which could be leveraged to compromise user sessions or inject malicious code, even without known CVEs.

Key Concerns

  • High attack surface without auth checks (AJAX)
  • Large proportion of unescaped output
  • Presence of dangerous functions (unserialize, exec, etc.)
  • Zero nonce checks on AJAX
Vulnerabilities
None known

heiv gallery 3 Security Vulnerabilities

No known vulnerabilities — this is a good sign.
Version History

heiv gallery 3 Release Timeline

v0.3.3.4Current
v0.3.3.2
v0.3.3.1
v0.3.3
v0.3.2
v0.3.1
v0.3.0
v0.2.5.1
v0.2.5
v0.2.4.3.1
v0.2.4.3
v0.2.4.2
v0.2.4.1
v0.2.4
v0.2.3.2
v0.2.3.1
v0.2.3
v0.2.2.2
v0.2.2.1
v0.2.2
Code Analysis
Analyzed Apr 16, 2026

heiv gallery 3 Code Analysis

Dangerous Functions
52
Raw SQL Queries
0
0 prepared
Unescaped Output
38
4 escaped
Nonce Checks
0
Capability Checks
3
File Operations
214
External Requests
1
Bundled Libraries
0

Dangerous Functions Found

ini_set$ret_path = ini_set('include_path', dirname(__FILE__) . '/pear/'.PATH_SEPARATOR.$path);heiv-gallery_3.php:45
create_functionarray_walk($matches[1], create_function('&$item,$key' ,' $item = trim($item);' ) );heiv-gallery_3.php:1337
create_functionarray_walk($matches[2], create_function('&$item,$key' ,' $item = trim($item);' ) );heiv-gallery_3.php:1338
unserialize$array = unserialize($data);pear/Cache/Lite/Function.php:118
unserializereturn unserialize($this->_memoryCachingArray[$this->_file]);pear/Cache/Lite.php:337
unserialize$data = unserialize($data);pear/Cache/Lite.php:358
unserialize$array = unserialize($data);pear/Cache/Lite.php:516
ini_setini_set('magic_quotes_runtime', false);pear/HTTP/Request.php:712
ini_setini_set('magic_quotes_runtime', $magicQuotes);pear/HTTP/Request.php:769
ini_setini_set('arg_separator.output', '&');pear/HTTP/Request.php:915
ini_setini_set('arg_separator.output', $separator);pear/HTTP/Request.php:917
create_functioncreate_function('$a', 'return $a[0] . \'=\' . $a[1];'),pear/HTTP/Request.php:965
ini_set$track = @ini_set('track_errors', 1);pear/HTTP/Request2/Adapter/Socket.php:317
ini_set@ini_set('track_errors', $track);pear/HTTP/Request2/Adapter/Socket.php:329
unserialize$data = unserialize($serialized);pear/HTTP/Request2/CookieJar.php:378
ini_set$track = @ini_set('track_errors', 1);pear/HTTP/Request2.php:963
ini_set@ini_set('track_errors', $track);pear/HTTP/Request2.php:969
ini_set$old_track_errors = @ini_set('track_errors', 1);pear/Net/Socket.php:126
ini_set@ini_set('track_errors', $old_track_errors);pear/Net/Socket.php:155
ini_set@ini_set('track_errors', $old_track_errors);pear/Net/Socket.php:159
create_functionarray_walk($method, create_function('$a,&$b', '$b = strtolower($b);'));pear/PEAR/Autoloader.php:102
exec$prefix = exec("php-config --prefix");pear/PEAR/Builder.php:378
popen$pp = popen("$command 2>&1", "r");pear/PEAR/Builder.php:442
popen$fp = popen($command, "r");pear/PEAR/Command/Package.php:455
popen$fp = popen($cmd, "r");pear/PEAR/Command/Package.php:536
popen$gpg = popen("gpg --batch --passphrase-fd 0 --armor --detach-sign --output $tmpdir/package.sig $tmpdpear/PEAR/Command/Package.php:725
create_function$info[$key][$i] = array_map(create_function('$a',pear/PEAR/Command/Registry.php:573
unserialize$data = unserialize($contents);pear/PEAR/Config.php:1056
unserialize$data = unserialize(file_get_contents($this->_depdb));pear/PEAR/DependencyDB.php:524
create_function$strtolower = create_function('$a','return strtolower($a);');pear/PEAR/Downloader.php:185
create_functionarray_walk($my, create_function('&$i, $k', '$i = $i["handle"];'));pear/PEAR/PackageFile/v2.php:424
create_functionarray_walk($yours, create_function('&$i, $k', '$i = $i["handle"];'));pear/PEAR/PackageFile/v2.php:429
unserialize$packagexml = unserialize($packagexml);pear/PEAR/REST/10.php:276
unserialize$d = unserialize($d);pear/PEAR/REST/10.php:580
unserialize$pf->setDeps(unserialize($ds));pear/PEAR/REST/10.php:730
unserialize$d = unserialize($dep['d']);pear/PEAR/REST/11.php:165
unserializereturn unserialize(implode('', file($cachefile)));pear/PEAR/REST.php:67
unserialize$cacheid = unserialize(implode('', file($cacheidfile)));pear/PEAR/REST.php:155
unserialize$ret = unserialize(implode('', file($cacheidfile)));pear/PEAR/REST.php:173
unserializereturn unserialize(implode('', file($cachefile)));pear/PEAR/REST.php:185
unserialize$cacheid = unserialize(implode('', file($cacheidfile)));pear/PEAR/REST.php:205
unserialize$tmp = unserialize($data);pear/PEAR/Registry.php:747
unserialize$data = unserialize($data);pear/PEAR/Registry.php:1053
unserialize$data = unserialize($data);pear/PEAR/Registry.php:1090
create_function$notempty = create_function('$a','return !empty($a);');pear/PEAR/Registry.php:1905
unserialize'content' => unserialize($content),pear/PEAR/Remote.php:99
proc_open$proc = proc_open($commandline, array(pear/PEAR/RunTest.php:119
proc_open$proc = proc_open($commandline, array(pear/PEAR/RunTest.php:125
systemsystem($cmd, $return_value);pear/PEAR/RunTest.php:443
ini_set@ini_set('track_errors', true);pear/PEAR.php:70
dlreturn @dl('php_'.$ext.$suffix) || @dl($ext.$suffix);pear/PEAR.php:763
dlreturn @dl('php_'.$ext.$suffix) || @dl($ext.$suffix);pear/PEAR.php:763

Output Escaping

10% escaped42 total outputs
Data Flows · Security
3 unsanitized

Data Flow Analysis

4 flows3 with unsanitized paths
debug_settings (heiv-gallery_3.php:241)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
3 unprotected

heiv gallery 3 Attack Surface

Entry Points4
Unprotected3

AJAX Handlers 3

authwp_ajax_heiv_gallery_3_populate_treeheiv-gallery_3.php:156
authwp_ajax_heiv_gallery_3_populate_photosheiv-gallery_3.php:157
authwp_ajax_heiv_gallery_3_get_rendererheiv-gallery_3.php:158

Shortcodes 1

[hgallery3] heiv-gallery_3.php:162
WordPress Hooks 5
filterthe_postsheiv-gallery_3.php:139
actionadmin_initheiv-gallery_3.php:154
actionadmin_menuheiv-gallery_3.php:160
filtermce_buttonsheiv-gallery_3.php:215
filtermce_external_pluginsheiv-gallery_3.php:216
Maintenance & Trust

heiv gallery 3 Maintenance & Trust

Maintenance Signals

WordPress version tested3.9.40
Last updatedApr 20, 2014
PHP min version
Downloads20K

Community Trust

Rating56/100
Number of ratings4
Active installs30
Developer Profile

heiv gallery 3 Developer Profile

heiv

1 plugin · 30 total installs

84
trust score
Avg Security Score
85/100
Avg Patch Time
30 days
View full developer profile
Detection Fingerprints

How We Detect heiv gallery 3

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/heiv-gallery-3/css/admin.css/wp-content/plugins/heiv-gallery-3/js/jquery.tools.min.js/wp-content/plugins/heiv-gallery-3/heiv_gallery_3_mce_editor.js
Script Paths
/wp-content/plugins/heiv-gallery-3/heiv_gallery_3_mce_editor.js
Version Parameters
heiv-gallery_3/css/admin.css?ver=heiv-gallery_3/js/jquery.tools.min.js?ver=heiv-gallery_3/heiv_gallery_3_mce_editor.js?ver=

HTML / DOM Fingerprints

CSS Classes
hg3_gallery_container
Data Attributes
data-hg3-id
JS Globals
heiv_gallery_3_params
REST Endpoints
/wp-json/heiv_gallery_3/v1/items
Shortcode Output
[hgallery3]
FAQ

Frequently Asked Questions about heiv gallery 3