Lens – WordPress Media Library Folders & File Manager Security & Risk Analysis

wordpress.org/plugins/lens-media-library-folders

Lens has it all: unlimited folders, drag-and-drop, role-based permissions, smart search, and more. Get organized now!

40 active installs v1.0.4 PHP 7.4+ WP 5.8+ Updated Feb 8, 2026
foldersmedia-categoriesmedia-librarymedia-organizer
100
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is Lens – WordPress Media Library Folders & File Manager Safe to Use in 2026?

Generally Safe

Score 100/100

Lens – WordPress Media Library Folders & File Manager has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 3mo ago
Risk Assessment

The plugin "lens-media-library-folders" v1.0.4 demonstrates a generally strong security posture, primarily due to excellent practices in SQL query handling and output escaping. The complete absence of raw SQL queries without prepared statements and 100% proper output escaping are significant strengths. Furthermore, the lack of any recorded historical vulnerabilities, including critical and high severity ones, suggests a mature and well-maintained codebase or a very limited attack history. The presence of 16 nonce checks and 47 capability checks also indicates a deliberate effort to secure various operations. However, a key concern is the presence of one AJAX handler that lacks authentication checks. This creates a potential entry point for unauthenticated attackers to trigger specific plugin functionalities, which could be exploited depending on the nature of that handler. The `set_time_limit` function, while not inherently a vulnerability, can be misused in certain contexts to impact server performance or potentially facilitate denial-of-service attacks if not carefully managed. The absence of taint analysis results is not necessarily a weakness but means no specific risks related to unsanitized user input leading to dangerous paths were identified in this analysis. In conclusion, while the plugin exhibits commendable security hygiene in several critical areas, the single unprotected AJAX endpoint represents a specific and actionable risk that warrants immediate attention and remediation.

Key Concerns

  • AJAX handler without authentication check
  • Use of dangerous function `set_time_limit`
Vulnerabilities
None known

Lens – WordPress Media Library Folders & File Manager Security Vulnerabilities

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

Lens – WordPress Media Library Folders & File Manager Release Timeline

v1.0.4Current
v1.0.3
v1.0.2
v1.0.1
Code Analysis
Analyzed Apr 16, 2026

Lens – WordPress Media Library Folders & File Manager Code Analysis

Dangerous Functions
1
Raw SQL Queries
0
104 prepared
Unescaped Output
3
844 escaped
Nonce Checks
16
Capability Checks
47
File Operations
6
External Requests
1
Bundled Libraries
2

Dangerous Functions Found

set_time_limit@set_time_limit( 0 );src/Rest/Controllers/FolderController.php:2979

Bundled Libraries

TinyMCEFreemius

SQL Query Safety

100% prepared104 total queries

Output Escaping

100% escaped847 total outputs
Attack Surface
1 unprotected

Lens – WordPress Media Library Folders & File Manager Attack Surface

Entry Points15
Unprotected1

AJAX Handlers 15

authwp_ajax_query-attachmentssrc/Admin/MediaLibrary.php:95
authwp_ajax_lens_get_attachments_lock_statussrc/Admin/MediaLibrary.php:112
authwp_ajax_lens_complete_onboardingsrc/Admin/Onboarding.php:96
authwp_ajax_lens_skip_onboardingsrc/Admin/Onboarding.php:97
authwp_ajax_lens_restart_onboardingsrc/Admin/Onboarding.php:98
authwp_ajax_lens_get_onboarding_statussrc/Admin/Onboarding.php:99
authwp_ajax_lens_get_post_mediasrc/Admin/PostMediaManager.php:70
authwp_ajax_lens_move_post_mediasrc/Admin/PostMediaManager.php:71
authwp_ajax_lens_get_bulk_postssrc/Admin/PostMediaManager.php:72
authwp_ajax_lens_telemetry_opt_insrc/Admin/Telemetry.php:152
authwp_ajax_lens_telemetry_opt_outsrc/Admin/Telemetry.php:153
authwp_ajax_lens_telemetry_dismisssrc/Admin/Telemetry.php:154
authwp_ajax_lens_get_telemetry_statussrc/Admin/Telemetry.php:155
authwp_ajax_lens_check_media_statussrc/Admin/TrashedMediaHandler.php:105
authwp_ajax_lens_restore_media_itemsrc/Admin/TrashedMediaHandler.php:106
WordPress Hooks 85
actionadmin_noticesfreemius-bootstrap.php:24
actionadmin_noticesfreemius-bootstrap.php:47
actionafter_uninstallfreemius-bootstrap.php:85
filteris_pricing_page_visiblefreemius-bootstrap.php:86
filtershow_deactivation_feedback_formfreemius-bootstrap.php:87
filtershow_deactivation_subscription_cancellationfreemius-bootstrap.php:88
actionadmin_noticeslens.php:34
actionadmin_enqueue_scriptssrc/Admin/AssetLoader.php:88
actionadmin_enqueue_scriptssrc/Admin/AssetLoader.php:89
actionadmin_footersrc/Admin/AssetLoader.php:90
actionadd_meta_boxes_attachmentsrc/Admin/AttachmentMetabox.php:48
actionedit_attachmentsrc/Admin/AttachmentMetabox.php:51
actionadmin_enqueue_scriptssrc/Admin/AttachmentMetabox.php:54
actionadmin_footersrc/Admin/AttachmentMetabox.php:248
actionadmin_enqueue_scriptssrc/Admin/DeactivationFeedback.php:38
actionnetwork_admin_enqueue_scriptssrc/Admin/DeactivationFeedback.php:39
actionadmin_footersrc/Admin/DeactivationFeedback.php:40
actionnetwork_admin_footersrc/Admin/DeactivationFeedback.php:41
actionload-upload.phpsrc/Admin/MediaLibrary.php:79
actionload-upload.phpsrc/Admin/MediaLibrary.php:82
filterajax_query_attachments_argssrc/Admin/MediaLibrary.php:85
filterrequestsrc/Admin/MediaLibrary.php:86
actionpre_get_postssrc/Admin/MediaLibrary.php:87
filterposts_clausessrc/Admin/MediaLibrary.php:88
filterwp_query_attachment_argssrc/Admin/MediaLibrary.php:91
filterwp_handle_upload_attachments_argssrc/Admin/MediaLibrary.php:92
actionload-upload.phpsrc/Admin/MediaLibrary.php:98
actionadmin_enqueue_scriptssrc/Admin/MediaLibrary.php:99
actionadd_attachmentsrc/Admin/MediaLibrary.php:102
actiondelete_attachmentsrc/Admin/MediaLibrary.php:103
filtermedia_row_actionssrc/Admin/MediaLibrary.php:106
filtermanage_media_custom_columnsrc/Admin/MediaLibrary.php:109
actionload-post.phpsrc/Admin/MediaLibrary.php:115
actionadmin_enqueue_scriptssrc/Admin/MediaLibrary.php:116
filterbulk_actions-uploadsrc/Admin/MediaLibrary.php:119
filterhandle_bulk_actions-uploadsrc/Admin/MediaLibrary.php:121
filtergettextsrc/Admin/MediaLibrary.php:124
filterwp_prepare_attachment_for_jssrc/Admin/MediaLibrary.php:127
filterwp_redirectsrc/Admin/MediaLibrary.php:320
filterredirect_canonicalsrc/Admin/MediaLibrary.php:321
filteradmin_body_classsrc/Admin/MediaLibrary.php:1328
actionadmin_initsrc/Admin/Onboarding.php:90
actionadmin_enqueue_scriptssrc/Admin/Onboarding.php:93
filterplugin_row_metasrc/Admin/PluginDependencies.php:32
actionadd_meta_boxessrc/Admin/PostMediaManager.php:54
actionadmin_enqueue_scriptssrc/Admin/PostMediaManager.php:57
filterpost_row_actionssrc/Admin/PostMediaManager.php:60
filterpage_row_actionssrc/Admin/PostMediaManager.php:61
actionadmin_footersrc/Admin/PostMediaManager.php:75
filtermce_external_pluginssrc/Admin/PostMediaManager.php:78
filtermce_buttonssrc/Admin/PostMediaManager.php:79
filtermce_buttons_2src/Admin/PostMediaManager.php:82
filtertiny_mce_before_initsrc/Admin/PostMediaManager.php:83
filtermce_external_pluginssrc/Admin/PostMediaManager.php:86
actionadmin_menusrc/Admin/SharesUpsellPage.php:36
actionadmin_initsrc/Admin/Telemetry.php:146
actionadmin_enqueue_scriptssrc/Admin/Telemetry.php:149
actionadmin_initsrc/Admin/Telemetry.php:158
actionadmin_initsrc/Admin/Telemetry.php:159
filterthe_contentsrc/Admin/TrashedMediaHandler.php:90
filterpost_thumbnail_htmlsrc/Admin/TrashedMediaHandler.php:91
filterget_post_metadatasrc/Admin/TrashedMediaHandler.php:92
filterrender_blocksrc/Admin/TrashedMediaHandler.php:95
actiontrashed_postsrc/Admin/TrashedMediaHandler.php:98
actionuntrashed_postsrc/Admin/TrashedMediaHandler.php:99
actionadmin_noticessrc/Admin/TrashedMediaHandler.php:102
actionwp_enqueue_scriptssrc/Admin/TrashedMediaHandler.php:109
actionadmin_enqueue_scriptssrc/Admin/TrashedMediaHandler.php:110
actionadmin_enqueue_scriptssrc/Admin/TrashedMediaHandler.php:111
actioninitsrc/Admin/TrashedMediaHandler.php:1010
actionadmin_initsrc/Core/Plugin.php:181
actionwpmu_new_blogsrc/Core/Plugin.php:265
actioncurrent_screensrc/Core/Plugin.php:284
filteradmin_body_classsrc/Core/Plugin.php:285
actionwp_logoutsrc/Core/Plugin.php:291
actionrest_api_initsrc/Core/Plugin.php:299
actionadmin_footersrc/Core/Plugin.php:373
filterupload_mimessrc/Media/SVGHandler.php:107
filterwp_check_filetype_and_extsrc/Media/SVGHandler.php:110
filterwp_handle_upload_prefiltersrc/Media/SVGHandler.php:113
filterwp_prepare_attachment_for_jssrc/Media/SVGHandler.php:116
filterwp_generate_attachment_metadatasrc/Media/SVGHandler.php:119
filterdetermine_current_usersrc/Security/ApiKeyAuthenticator.php:56
filterrest_authentication_errorssrc/Security/ApiKeyAuthenticator.php:57
actiondelete_usersrc/Security/ApiKeyManager.php:65

Scheduled Events 2

lens_daily_cleanup
lens_cache_cleanup
Maintenance & Trust

Lens – WordPress Media Library Folders & File Manager Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedFeb 8, 2026
PHP min version7.4
Downloads688

Community Trust

Rating100/100
Number of ratings6
Active installs40
Developer Profile

Lens – WordPress Media Library Folders & File Manager Developer Profile

Neonic

1 plugin · 40 total installs

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

How We Detect Lens – WordPress Media Library Folders & File Manager

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/lens-media-library-folders/assets/css/lens-admin.css/wp-content/plugins/lens-media-library-folders/assets/css/components/lock-shell.css/wp-content/plugins/lens-media-library-folders/assets/css/lens-onboarding.css/wp-content/plugins/lens-media-library-folders/assets/css/components/feedback-dialog.css/wp-content/plugins/lens-media-library-folders/assets/css/components/upgrade-modal.css/wp-content/plugins/lens-media-library-folders/assets/css/components/permissions-locked.css/wp-content/plugins/lens-media-library-folders/assets/css/admin/developer-tools.css/wp-content/plugins/lens-media-library-folders/assets/js/lens-admin.js+61 more
Script Paths
/wp-content/plugins/lens-media-library-folders/assets/js/lens-admin.js/wp-content/plugins/lens-media-library-folders/assets/js/modules/core/EventBus.js/wp-content/plugins/lens-media-library-folders/assets/js/modules/core/Constants.js/wp-content/plugins/lens-media-library-folders/assets/js/modules/core/Features/FeatureRegistry.js/wp-content/plugins/lens-media-library-folders/assets/js/modules/core/FolderColorPalette.js/wp-content/plugins/lens-media-library-folders/assets/js/modules/core/StateManager.js+56 more
Version Parameters
lens-media-library-folders/assets/css/lens-admin.css?ver=lens-media-library-folders/assets/css/components/lock-shell.css?ver=lens-media-library-folders/assets/css/lens-onboarding.css?ver=lens-media-library-folders/assets/css/components/feedback-dialog.css?ver=lens-media-library-folders/assets/css/components/upgrade-modal.css?ver=lens-media-library-folders/assets/css/components/permissions-locked.css?ver=lens-media-library-folders/assets/css/admin/developer-tools.css?ver=lens-media-library-folders/assets/js/lens-admin.js?ver=lens-media-library-folders/assets/js/modules/core/EventBus.js?ver=lens-media-library-folders/assets/js/modules/core/Constants.js?ver=lens-media-library-folders/assets/js/modules/core/Features/FeatureRegistry.js?ver=lens-media-library-folders/assets/js/modules/core/FolderColorPalette.js?ver=lens-media-library-folders/assets/js/modules/core/StateManager.js?ver=lens-media-library-folders/assets/js/modules/core/ApiClient.js?ver=lens-media-library-folders/assets/js/modules/core/DOMCache.js?ver=lens-media-library-folders/assets/js/modules/core/Utils.js?ver=lens-media-library-folders/assets/js/modules/core/LockValidator.js?ver=lens-media-library-folders/assets/js/modules/core/PermissionChecker.js?ver=lens-media-library-folders/assets/js/modules/core/Core.js?ver=lens-media-library-folders/assets/js/modules/core/UndoManager.js?ver=lens-media-library-folders/assets/js/modules/core/DOMOperations.js?ver=lens-media-library-folders/assets/js/modules/core/VirtualScrolling.js?ver=lens-media-library-folders/assets/js/modules/core/FolderTree.js?ver=lens-media-library-folders/assets/js/modules/core/FolderExplorer.js?ver=lens-media-library-folders/assets/js/modules/core/FolderOperations.js?ver=lens-media-library-folders/assets/js/modules/core/FolderSorting.js?ver=lens-media-library-folders/assets/js/modules/core/Compression.js?ver=lens-media-library-folders/assets/js/modules/core/ProgressDialog.js?ver=lens-media-library-folders/assets/js/modules/core/CountManager.js?ver=lens-media-library-folders/assets/js/modules/core/FolderData.js?ver=lens-media-library-folders/assets/js/modules/core/ContextMenu.js?ver=lens-media-library-folders/assets/js/modules/core/FolderColors.js?ver=lens-media-library-folders/assets/js/modules/core/Selection.js?ver=lens-media-library-folders/assets/js/modules/core/Clipboard.js?ver=lens-media-library-folders/assets/js/modules/core/DragDrop.js?ver=lens-media-library-folders/assets/js/modules/core/TrashView.js?ver=lens-media-library-folders/assets/js/modules/core/MediaFilter.js?ver=lens-media-library-folders/assets/js/modules/core/MediaOperations.js?ver=lens-media-library-folders/assets/js/modules/core/MediaIntegration.js?ver=lens-media-library-folders/assets/js/modules/core/AttachmentDetails.js?ver=lens-media-library-folders/assets/js/modules/core/UploadFolderSelector.js?ver=lens-media-library-folders/assets/js/modules/core/MediaDragDrop.js?ver=lens-media-library-folders/assets/js/modules/core/Navigation.js?ver=lens-media-library-folders/assets/js/modules/core/Search.js?ver=lens-media-library-folders/assets/js/modules/core/QuickSwitch.js?ver=lens-media-library-folders/assets/js/modules/core/SidebarSearch.js?ver=lens-media-library-folders/assets/js/modules/core/Onboarding.js?ver=lens-media-library-folders/assets/js/modules/core/DialogManager.js?ver=lens-media-library-folders/assets/js/modules/core/FolderLockDialog.js?ver=lens-media-library-folders/assets/js/modules/core/MediaAccessGuard.js?ver=lens-media-library-folders/assets/js/modules/core/LockedMediaRenderer.js?ver=lens-media-library-folders/assets/js/modules/core/CreateFolderDialog.js?ver=lens-media-library-folders/assets/js/modules/core/MoveFolderDialog.js?ver=lens-media-library-folders/assets/js/modules/core/Folder-selector.js?ver=lens-media-library-folders/assets/js/modules/core/FeedbackDialog.js?ver=lens-media-library-folders/assets/js/modules/core/Toast.js?ver=lens-media-library-folders/assets/js/modules/core/EmptyState.js?ver=lens-media-library-folders/assets/js/modules/core/SidebarManager.js?ver=lens-media-library-folders/assets/js/modules/core/ResizeHandler.js?ver=lens-media-library-folders/assets/js/modules/core/ClickHandler.js?ver=lens-media-library-folders/assets/js/modules/core/Settings.js?ver=lens-media-library-folders/assets/js/modules/core/KeyboardShortcuts.js?ver=lens-media-library-folders/assets/js/modules/core/KeyboardShortcutsEditor.js?ver=lens-media-library-folders/assets/js/modules/core/FolderKeyboardNavigation.js?ver=lens-media-library-folders/assets/js/modules/core/BulkOperations.js?ver=lens-media-library-folders/assets/js/modules/core/Favorites.js?ver=lens-media-library-folders/assets/js/modules/core/Performance.js?ver=lens-media-library-folders/assets/js/modules/core/FeatureGate.js?ver=lens-media-library-folders/assets/js/modules/development/TestDataGenerator.js?ver=

HTML / DOM Fingerprints

CSS Classes
lens-dialog-backdroplens-dialoglens-dialog__headerlens-dialog__titlelens-dialog__close-buttonlens-dialog__contentlens-dialog__footerlens-input-group+23 more
HTML Comments
<!-- LENS_PLUGIN_FILE --><!-- START LENS DIALOG --><!-- END LENS DIALOG --><!-- LENS: FOLDER LIST START -->+6 more
Data Attributes
data-lens-dialog-backdropdata-lens-dialogdata-lens-dialog-iddata-lens-folder-iddata-lens-item-typedata-lens-item-id+6 more
JS Globals
LensLens.eventBusLens.stateManagerLens.apiClientLens.domCacheLens.utils+112 more
REST Endpoints
/wp-json/lens/v1/folders/wp-json/lens/v1/media/wp-json/lens/v1/settings/wp-json/lens/v1/permissions
FAQ

Frequently Asked Questions about Lens – WordPress Media Library Folders & File Manager