KPiR Security & Risk Analysis

wordpress.org/plugins/kpir

Effortless Polish bookkeeping for small businesses—track expenses, manage VAT, and generate JPK reports directly from your WordPress dashboard.

0 active installs v1.1.3 PHP 8.0+ WP 6.0+ Updated Feb 21, 2026
fakturajpkkpirksiegowoscvat
100
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is KPiR Safe to Use in 2026?

Generally Safe

Score 100/100

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

No known CVEs Updated 1mo ago
Risk Assessment

The "kpir" v1.1.3 plugin exhibits a mixed security posture. On the positive side, it demonstrates good practices by exclusively using prepared statements for its SQL queries and includes nonce checks for its entry points. There are no recorded vulnerabilities (CVEs) in its history, which is a strong indicator of past security diligence. However, a significant concern arises from the static analysis, which reveals one of its two AJAX handlers lacks authentication checks. Furthermore, the taint analysis identified one flow with an unsanitized path, which, despite not reaching a critical or high severity in this specific analysis, represents a potential avenue for injection attacks if not handled with extreme care. The 53% proper output escaping rate also suggests a notable area for improvement to prevent potential Cross-Site Scripting (XSS) vulnerabilities.

Key Concerns

  • AJAX handler without authentication
  • Flow with unsanitized path
  • Significant portion of output not escaped
Vulnerabilities
None known

KPiR Security Vulnerabilities

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

KPiR Code Analysis

Dangerous Functions
0
Raw SQL Queries
0
4 prepared
Unescaped Output
194
218 escaped
Nonce Checks
4
Capability Checks
2
File Operations
0
External Requests
0
Bundled Libraries
1

Bundled Libraries

Select2

SQL Query Safety

100% prepared4 total queries

Output Escaping

53% escaped412 total outputs
Data Flows
1 unsanitized

Data Flow Analysis

3 flows1 with unsanitized paths
get_template (includes\iworks\kpir\jpk.php:61)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
1 unprotected

KPiR Attack Surface

Entry Points2
Unprotected1

AJAX Handlers 2

authwp_ajax_kpir_duplicate_invoiceincludes\iworks\class-kpir.php:174
authwp_ajax_iworks_get_contractorsincludes\iworks\kpir\posttypes\contractor.php:38
WordPress Hooks 26
actionadmin_initincludes\iworks\class-kpir.php:106
actionwp_loadedincludes\iworks\class-kpir.php:107
actionadmin_enqueue_scriptsincludes\iworks\class-kpir.php:173
actionwp_dashboard_setupincludes\iworks\class-kpir.php:175
filterplugin_row_metaincludes\iworks\class-kpir.php:176
filterpost_row_actionsincludes\iworks\class-kpir.php:177
actionsend_headersincludes\iworks\kpir\jpk\v7m.php:31
actioninitincludes\iworks\kpir\posttypes\contractor.php:36
actionmanage_posts_custom_columnincludes\iworks\kpir\posttypes\contractor.php:43
actionpre_get_postsincludes\iworks\kpir\posttypes\contractor.php:47
actionrestrict_manage_postsincludes\iworks\kpir\posttypes\contractor.php:51
filterenter_title_hereincludes\iworks\kpir\posttypes\invoice.php:92
actioninitincludes\iworks\kpir\posttypes\invoice.php:93
actioninitincludes\iworks\kpir\posttypes\invoice.php:94
actioniworks_kpir_posttype_update_post_metaincludes\iworks\kpir\posttypes\invoice.php:99
actionmanage_posts_custom_columnincludes\iworks\kpir\posttypes\invoice.php:113
actionpre_get_postsincludes\iworks\kpir\posttypes\invoice.php:117
actionpre_get_postsincludes\iworks\kpir\posttypes\invoice.php:118
actioninitincludes\iworks\kpir\posttypes.php:69
actioninitincludes\iworks\kpir\posttypes.php:70
actionsave_postincludes\iworks\kpir\posttypes.php:74
actionadmin_enqueue_scriptsincludes\iworks\options\options.php:87
actionadmin_headincludes\iworks\options\options.php:88
actionadmin_menuincludes\iworks\options\options.php:89
actionadmin_noticesincludes\iworks\options\options.php:90
filterscreen_layout_columnsincludes\iworks\options\options.php:91
Maintenance & Trust

KPiR Maintenance & Trust

Maintenance Signals

WordPress version tested6.8.5
Last updatedFeb 21, 2026
PHP min version8.0
Downloads3K

Community Trust

Rating100/100
Number of ratings1
Active installs0
Developer Profile

KPiR Developer Profile

Marcin Pietrzak

20 plugins · 89K total installs

77
trust score
Avg Security Score
97/100
Avg Patch Time
274 days
View full developer profile
Detection Fingerprints

How We Detect KPiR

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/kpir/assets/externals/datepicker/css/jquery-ui-datepicker.css/wp-content/plugins/kpir/assets/externals/select2/css/select2.min.css/wp-content/plugins/kpir/assets/styles/kpir-admin.css/wp-content/plugins/kpir/assets/scripts/admin/src/datepicker.js/wp-content/plugins/kpir/assets/scripts/admin/src/invoice.js/wp-content/plugins/kpir/assets/scripts/admin/src/jpk.js/wp-content/plugins/kpir/assets/scripts/admin/src/select2.js/wp-content/plugins/kpir/assets/scripts/admin/kpir.js+1 more
Script Paths
/wp-content/plugins/kpir/assets/externals/select2/js/select2.full.min.js
Version Parameters
kpir-adminadmin-kpirjquery-ui-datepickerselect2

HTML / DOM Fingerprints

CSS Classes
kpir-dashboard-widget-current-monthkpir-dashboard-widget-past-month
HTML Comments
<!-- post_types --><!-- admin init --><!-- load github class --><!-- off on not KPiR pages -->+7 more
JS Globals
__CLASS__
FAQ

Frequently Asked Questions about KPiR