v1.7.2-rc-2 #1679
nielsdrost7
started this conversation in
General
v1.7.2-rc-2
#1679
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
InvoicePlane v1.7.2 RC 2
v1.7.2-rc-2.zip
Thank you
Special thanks to code contributors @drewangell, @mpldr, @snajafov, and @PatrickGTR for their feature and infrastructure improvements.
Enormous thanks to our security researchers who reported vulnerabilities. All changes are listed in the CHANGELOG.md
Please read the CHANGELOG, there are some things you need to do when you have Custom Invoice and Quote templates (instead of the default ones)
@0raN9ewww, @5ud0er, @akgul7990, @alanturing881, @alham-rizvi, @ali-iltizar, @ashrexon, @baozongwi, @capt-bl4ck0ut, @chakrapani150, @Char0n1507, @Chittu13, @cyabell, @de3erve-hunter, @EvidentObscurity, @FelipeSilvany, @FORIMOC, @geo-chen, @HuajiHD, @iiihaiii, @kitu232, @lighthousekeeper1212, @mattmumford-git, @PLpaPLpa, @polybjorn, @QiaoNPC, @radoi-teodor, @Santoshkumarpuppala, @snajafov, @tikket1, @tonghuaroot, @udaypali, @venkatesh2003631, @Vijay-raghav7
Security & Stability
random_string()/str_shuffle()/ Mersenne Twister; password-reset token comparison now useshash_equals()(GHSA-chqc-v432-8pj8, GHSA-wcqc-qqv5-65ph)Users::change_password()now allows only the account owner or primary administrator (user_id=1) to change a user password (GHSA-p7w2-hmm5-qw7m, GHSA-p875-mj5j-x2fc).SETUP_COMPLETED=true, preventing unauthenticated post-installation access to database upgrade operations whenDISABLE_SETUP=false(GHSA-pp5w-98m2-gvc8).ip_users.Sumex::pdf()now rejects anySUMEX_URLthat isn'thttps://and restricts SUMEX cURL requests/redirects to HTTPS with certificate verification, closing an admin-configuration SSRF into local files, internal hosts, or cloud metadata endpoints; XML control characters are now stripped from SUMEX free-text fields andinvoice_number/user_subscribernumberare restricted to a strict character allowlist before use in the generated XML; andstorage/(which holds the temporary SUMEX XML containing patient PII) now denies direct web access on both Apache and nginx.recalculate_all_invoices()/recalculate_all_quotes()now require a valid POST + CSRF token, closing a GET-reachable bulk-mutation gap;invoice_logo_pdf()now escapes the logo filename before writing it into PDF<img src>output; the Stripe guest callback now sanitizescheckout_session_idand its error-log output before logging, closing a log-injection gap; and several defense-in-depth fixes (JSON_HEX_*flags on the email-compose modal's JSON, shared path-validation helper inUpload::delete_file(),$cldrallowlisting incountry_helper.php, and auser_activecheck on password-reset requests).DELETE) — the per-account guard also gated the failure counter so it could never reach the unlock threshold, and the unlock branch mis-measured elapsed time. Lockouts now expire after the intended 12-hour window (GHSA-cjwm-qx8w-hrq2).user_passwordreset_token_expiryadded in043_1.7.2.sql), parsing is strict, the POST validates CSRF and uses the safe-referer helper, and all failures return one generic message (GHSA-fwj7-c84x-jvjq).mark_invoices_sent_pdf/mark_quotes_sent_pdfenabled,invoices/generate_pdf/<id>andquotes/generate_pdf/<id>assigned the next official number, moved the document draft→sent, updated its due date, and could lock it — all on a plain authenticated GET, so a hidden<img>on any page an admin visited could fire it. The mutation now runs only with a valid same-origin CSRF token (newverify_get_csrf_token()/_csrf_query()); the PDF still streams either way, so download links and the auto-mark-sent workflow are unchanged.Improvements / Changes
Custom Templates & Configuration
ipconfig.php, making custom invoice and quote template selection explicit while preserving the no-filesystem-scan RCE fix.CUSTOM_TEMPLATES_FOLDERalone lists no templates; template names must be copied into the relevantipconfig.phpallowlist variable.CUSTOM_TEMPLATES_FOLDERand the matchingCUSTOM_*_TEMPLATESallowlist entry./setupcompletion and Settings-page warning listing the saved custom template names and the exactCUSTOM_INVOICE_TEMPLATES_PDF,CUSTOM_INVOICE_TEMPLATES_PUBLIC,CUSTOM_QUOTE_TEMPLATES_PDF, orCUSTOM_QUOTE_TEMPLATES_PUBLICvariable to update.Payment Processing
Full Changelog (since v1.7.1): v1.7.1...v1.7.2-rc-2
This discussion was created from the release v1.7.2-rc-2.
All reactions