Flickr Photo Album Security & Risk Analysis

wordpress.org/plugins/tantan-flickr

This Flickr plugin for WordPress will allow you to pull in your Flickr photosets and display them as albums on your WordPress site.

100 active installs v1.1 PHP + WP 2.5+ Updated Apr 9, 2009
flickrgalleryimagesphoto-albumphotos
85
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is Flickr Photo Album Safe to Use in 2026?

Generally Safe

Score 85/100

Flickr Photo Album has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 16yr ago
Risk Assessment

The tantan-flickr plugin v1.1 exhibits a concerning security posture primarily due to significant weaknesses in output sanitization and the use of dangerous functions. While the plugin's attack surface appears limited with no direct AJAX or REST API endpoints directly exposed without checks, and a single shortcode as the main entry point, the static analysis reveals critical flaws. The presence of 14 dangerous functions, including `create_function`, `unserialize`, and `preg_replace(/e)`, alongside a complete lack of proper output escaping for all identified outputs, creates a high risk of cross-site scripting (XSS) and potentially remote code execution vulnerabilities. The taint analysis showing 5 flows with unsanitized paths further reinforces these concerns, indicating that user-supplied data is not being adequately validated or cleaned before being processed or displayed.

Despite the absence of recorded CVEs, this history should not be interpreted as a sign of robust security. Instead, it likely indicates that the plugin has not been thoroughly audited for these specific types of vulnerabilities or that existing issues have gone unreported. The 16 SQL queries with only 19% using prepared statements also suggest a risk of SQL injection, especially when combined with the unsanitized output, as data might be directly incorporated into queries. The plugin's sole capability check is insufficient protection for the identified dangerous functions and unsanitized outputs. The plugin's strengths lie in its limited direct attack surface and lack of external HTTP requests. However, the fundamental issues with code execution and data sanitization represent substantial security weaknesses that require immediate attention.

Key Concerns

  • No output escaping
  • Dangerous functions present
  • Unsanitized paths in taint analysis
  • Low percentage of prepared statements for SQL
  • No nonce checks
  • Single capability check insufficient
Vulnerabilities
None known

Flickr Photo Album Security Vulnerabilities

No known vulnerabilities — this is a good sign.
Code Analysis
Analyzed Mar 16, 2026

Flickr Photo Album Code Analysis

Dangerous Functions
14
Raw SQL Queries
13
3 prepared
Unescaped Output
8
0 escaped
Nonce Checks
0
Capability Checks
1
File Operations
14
External Requests
0
Bundled Libraries
0

Dangerous Functions Found

create_functionadd_action('admin_notices', create_function('', 'echo \'<div id="message" class="updated fade"><p>Thflickr\class-admin.php:43
unserializeif (is_string($new)) $new = @unserialize($new);flickr\class-admin.php:446
unserialize$update = unserialize( $response[1] );flickr\class-admin.php:461
preg_replace(/e)preg_replace("/\s/e"flickr\lib.flickr.php:522
preg_replace(/e)preg_replace("/\W/e"flickr\lib.flickr.php:523
unserializereturn unserialize($return);flickr\lib.flickr.php:640
unserialize$this->parsed_response = $this->clean_text_nodes(unserialize($this->response));flickr\lib.phpFlickr.php:263
unserializereturn unserialize(file_get_contents('http://phpflickr.com/geodata/?format=php&lat=' . $lat . '&lon=flickr\lib.phpFlickr.php:353
create_functionadd_shortcode('flickr', create_function('$attribs=false, $content=false', 'require_once(dirname(__FIflickr.php:83
create_functionadd_action('template_redirect', create_function('', "if (file_exists(TEMPLATEPATH . '/photoalbum-reflickr.php:85
create_functionadd_action('plugins_loaded', create_function('', 'require_once(dirname(__FILE__)."/flickr/widget.phpflickr.php:88
create_functionadd_action('tantan_flickr_clear_cache_event', create_function('', 'require_once(dirname(__FILE__)."/flickr.php:91
create_functionadd_action('wp_head', create_function('', 'TanTanFlickrDisplay::headTags();'));templates\photoalbum-resources.php:231
create_functionadd_action('wp_footer', create_function('', 'TanTanFlickrDisplay::footer();'));templates\photoalbum-resources.php:232

SQL Query Safety

19% prepared16 total queries

Output Escaping

0% escaped8 total outputs
Data Flows
5 unsanitized

Data Flow Analysis

5 flows5 with unsanitized paths
auth (flickr\lib.phpFlickr.php:356)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

Flickr Photo Album Attack Surface

Entry Points1
Unprotected0

Shortcodes 1

[flickr] flickr.php:83
WordPress Hooks 38
actionadmin_menuflickr\class-admin.php:15
actionactivate_tantan-flickr/flickr.phpflickr\class-admin.php:16
actiondeactivate_tantan-flickr/flickr.phpflickr\class-admin.php:17
actionload-upload.phpflickr\class-admin.php:18
actionmedia_buttonsflickr\class-admin.php:21
filtermedia_buttons_contextflickr\class-admin.php:22
actionmedia_upload_tantan-flickr-photo-streamflickr\class-admin.php:23
actionmedia_upload_tantan-flickr-photo-albumsflickr\class-admin.php:24
actionmedia_upload_tantan-flickr-photo-everyoneflickr\class-admin.php:25
actionmedia_upload_tantan-flickr-photo-interestingflickr\class-admin.php:26
actionadmin_noticesflickr\class-admin.php:43
filteruploading_iframe_srcflickr\class-admin.php:253
filtermedia_upload_tabsflickr\class-admin.php:296
actionadmin_print_scriptsflickr\class-admin.php:297
actionadmin_print_scriptsflickr\class-admin.php:298
actiontantan_media_upload_headerflickr\class-admin.php:301
filterwp_upload_tabsflickr\class-admin.php:323
actionadmin_print_scriptsflickr\class-admin.php:324
actionadd_option_update_pluginsflickr\class-admin.php:482
actionupdate_option_update_pluginsflickr\class-admin.php:483
actionafter_plugin_rowflickr\class-admin.php:484
actionwp_headflickr\class-public.php:309
actionwp_headflickr\class-public.php:416
actionwp_headflickr\class-public.php:418
actionwp_headflickr\class-public.php:419
actionwp_footerflickr\class-public.php:420
filterwp_titleflickr\class-public.php:446
actionwp_headflickr\widget.php:23
actionwp_footerflickr\widget.php:24
filterrequestflickr.php:71
actionparse_queryflickr.php:72
actionparse_requestflickr.php:73
actiontemplate_redirectflickr.php:74
actiontemplate_redirectflickr.php:85
actionplugins_loadedflickr.php:88
actiontantan_flickr_clear_cache_eventflickr.php:91
actionwp_headtemplates\photoalbum-resources.php:231
actionwp_footertemplates\photoalbum-resources.php:232

Scheduled Events 2

tantan_flickr_clear_cache_event
tantan_flickr_clear_cache_event
Maintenance & Trust

Flickr Photo Album Maintenance & Trust

Maintenance Signals

WordPress version tested2.7
Last updatedApr 9, 2009
PHP min version
Downloads153K

Community Trust

Rating20/100
Number of ratings2
Active installs100
Developer Profile

Flickr Photo Album Developer Profile

joetan

3 plugins · 290 total installs

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

How We Detect Flickr Photo Album

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

Asset Fingerprints

Version Parameters
/wp-content/plugins/tantan-flickr/widget-options.html?ver=/wp-content/plugins/tantan-flickr/widget-display-animate.html?ver=/wp-content/plugins/tantan-flickr/widget-display.html?ver=

HTML / DOM Fingerprints

JS Globals
TanTanFlickrPlugin
Shortcode Output
require_once(dirname(__FILE__)."/flickr/class-public.php"); if (!is_object($GLOBALS[TanTanFlickrPlugin])) $GLOBALS[TanTanFli
FAQ

Frequently Asked Questions about Flickr Photo Album