{"id":"CVE-2026-55384","state":"PUBLISHED","title":"InvoiceShelf trusts client-supplied document totals","description":"InvoiceShelf is an open-source web & mobile app that helps track expenses, payments and create professional invoices and estimates. Prior to version 2.4.0, InvoiceShelf invoice, estimate, and recurring-invoice creation paths accept client-supplied total, sub_total, tax, discount_val, and due_amount values without verifying that they match the submitted line items. An authenticated user can persist manipulated financial totals through InvoicesRequest::getInvoicePayload and the corresponding EstimatesRequest and RecurringInvoiceRequest handlers, causing stored document totals to disagree with their item prices and quantities. This issue is fixed in version 2.4.0.","publishedAt":"2026-10-14T19:17:25.099Z","updatedAt":"2026-10-15T15:05:50.446Z","severity":{"score":5.3,"label":"Medium","version":"4.0","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N","source":"GitHub_M"},"assigner":"GitHub_M","products":["InvoiceShelf InvoiceShelf"],"affected":[{"vendor":"InvoiceShelf","product":"InvoiceShelf","versions":[{"version":"< 2.4.0","status":"affected"}]}],"references":["https://github.com/InvoiceShelf/InvoiceShelf/security/advisories/GHSA-8c69-ch98-87r6","https://github.com/InvoiceShelf/InvoiceShelf/pull/665","https://github.com/InvoiceShelf/InvoiceShelf/commit/107a951126b606880a8f4838a88cdff707ee619b","https://github.com/InvoiceShelf/InvoiceShelf/releases/tag/2.4.0"],"weaknesses":["CWE-284","CWE-472"],"ingestedAt":"2026-10-29T20:12:24.861Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/55xxx/CVE-2026-55384.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-55384","state":"PUBLISHED","datePublished":"2026-10-14T19:17:25.099Z","dateUpdated":"2026-10-15T15:05:50.446Z","assignerShortName":"GitHub_M","assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateReserved":"2026-06-16T18:57:40.182Z"},"containers":{"cna":{"title":"InvoiceShelf trusts client-supplied document totals","descriptions":[{"lang":"en","value":"InvoiceShelf is an open-source web & mobile app that helps track expenses, payments and create professional invoices and estimates. Prior to version 2.4.0, InvoiceShelf invoice, estimate, and recurring-invoice creation paths accept client-supplied total, sub_total, tax, discount_val, and due_amount values without verifying that they match the submitted line items. An authenticated user can persist manipulated financial totals through InvoicesRequest::getInvoicePayload and the corresponding EstimatesRequest and RecurringInvoiceRequest handlers, causing stored document totals to disagree with their item prices and quantities. This issue is fixed in version 2.4.0."}],"affected":[{"vendor":"InvoiceShelf","product":"InvoiceShelf","versions":[{"version":"< 2.4.0","status":"affected"}]}],"references":[{"url":"https://github.com/InvoiceShelf/InvoiceShelf/security/advisories/GHSA-8c69-ch98-87r6","name":"https://github.com/InvoiceShelf/InvoiceShelf/security/advisories/GHSA-8c69-ch98-87r6","tags":["x_refsource_CONFIRM"]},{"url":"https://github.com/InvoiceShelf/InvoiceShelf/pull/665","name":"https://github.com/InvoiceShelf/InvoiceShelf/pull/665","tags":["x_refsource_MISC"]},{"url":"https://github.com/InvoiceShelf/InvoiceShelf/commit/107a951126b606880a8f4838a88cdff707ee619b","name":"https://github.com/InvoiceShelf/InvoiceShelf/commit/107a951126b606880a8f4838a88cdff707ee619b","tags":["x_refsource_MISC"]},{"url":"https://github.com/InvoiceShelf/InvoiceShelf/releases/tag/2.4.0","name":"https://github.com/InvoiceShelf/InvoiceShelf/releases/tag/2.4.0","tags":["x_refsource_MISC"]}],"metrics":[{"cvssV4_0":{"attackVector":"NETWORK","attackComplexity":"LOW","attackRequirements":"NONE","privilegesRequired":"LOW","userInteraction":"NONE","vulnConfidentialityImpact":"NONE","vulnIntegrityImpact":"LOW","vulnAvailabilityImpact":"NONE","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","subAvailabilityImpact":"NONE","baseScore":5.3,"baseSeverity":"MEDIUM","vectorString":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N","version":"4.0"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-284","lang":"en","description":"CWE-284: Improper Access Control","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-472","lang":"en","description":"CWE-472: External Control of Assumed-Immutable Web Parameter","type":"CWE"}]}],"providerMetadata":{"shortName":"GitHub_M","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateUpdated":"2026-10-14T19:17:25.099Z"},"source":{"advisory":"GHSA-8c69-ch98-87r6","discovery":"UNKNOWN"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-10-15T13:52:05.889221Z","id":"CVE-2026-55384","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-15T15:05:50.446Z"}}]}}}