Skip to content

Econumo

v1.1.0 Security

This release includes 3 security fixes for security teams reviewing exposed deployments.

Published 8d Productivity & Wikis
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →
This release patches 3 known CVEs

Topics

budget budget-app expense-tracker money-tracker pfm

Affected surfaces

auth rbac

ReleasePort's take

Moderate signal
editorial:auto 8d

The release fixes IDOR bugs that let users mutate other accounts via foreign UUIDs and caps request bodies at 1 MiB with added read/write/idle timeouts.

Why it matters: Security: patches critical IDOR vulnerability; Performance/Reliability: enforces a hard 1 MiB limit on request payloads to prevent abuse.

Summary

AI summary

Updates What's new, Fixes & improvements, and Budget across a mixed release.

Changes in this release

Security Critical

Fixed IDOR bugs allowing mutation of other users' data via foreign UUIDs.

Fixed IDOR bugs allowing mutation of other users' data via foreign UUIDs.

Source: llm_adapter@2026-07-19

Confidence: high

Security High

Request bodies capped at 1 MiB; server added proper read/write/idle timeouts.

Request bodies capped at 1 MiB; server added proper read/write/idle timeouts.

Source: llm_adapter@2026-07-19

Confidence: low

Breaking High

Budget sharing now fails closed; only owner/admin can grant/revoke access.

Budget sharing now fails closed; only owner/admin can grant/revoke access.

Source: llm_adapter@2026-07-19

Confidence: high

Breaking High

Old account‑sharing endpoints (`connection/set-account-access`, `connection/revoke-account-access`) are removed.

Old account‑sharing endpoints (`connection/set-account-access`, `connection/revoke-account-access`) are removed.

Source: llm_adapter@2026-07-19

Confidence: high

Feature Medium

Standardized account sharing uses invite → accept/decline handshake.

Standardized account sharing uses invite → accept/decline handshake.

Source: llm_adapter@2026-07-19

Confidence: high

Feature Medium

Server checks for new releases daily and shows a badge/notification in the UI.

Server checks for new releases daily and shows a badge/notification in the UI.

Source: llm_adapter@2026-07-19

Confidence: high

Feature Medium

Money amounts now transmitted as exact decimal strings end‑to‑end.

Money amounts now transmitted as exact decimal strings end‑to‑end.

Source: llm_adapter@2026-07-19

Confidence: low

Feature Medium

App now supports English and Russian UI languages via a globe selector.

App now supports English and Russian UI languages via a globe selector.

Source: llm_adapter@2026-07-19

Confidence: low

Dependency Low

Money amounts in JSON are now decimal strings; API clients must handle string values.

Money amounts in JSON are now decimal strings; API clients must handle string values.

Source: llm_adapter@2026-07-19

Confidence: low

Bugfix Medium

Archived budget categories with history remain visible; Spent column no longer negated.

Archived budget categories with history remain visible; Spent column no longer negated.

Source: llm_adapter@2026-07-19

Confidence: low

Bugfix Low

Spent column no longer shows negated values and aligns correctly across rows.

Spent column no longer shows negated values and aligns correctly across rows.

Source: granite4.1:30b@2026-07-19-audit

Confidence: low

Full changelog

Econumo v1.1.0 brings multi-language support, a redesigned account-sharing flow, exact decimal money handling, new-release notifications, and a substantial security-hardening pass — plus a batch of budget and UI fixes.

What's new

  • Multi-language support (#94) — the app now speaks English and Russian. A globe selector on the sign-in/registration pages and in Settings switches the UI language; validation errors and the password-reset email are localized too. Your choice is remembered per browser and stored in your profile. More languages are easy to add — contributions welcome.
  • Standardized account sharing (#90) — sharing an account now uses the same invite → accept/decline handshake budgets already had: the recipient sees a pending invite and explicitly accepts (choosing a folder for the account) or declines, instead of the account silently appearing. Existing shares are grandfathered as accepted, and leaving a share you received is now a "Decline/Leave" action rather than a scary "Delete" (#103).
  • Exact money amounts (#60, #113) — amounts (balances, transactions, budget limits/spent) now travel as decimal strings end-to-end and the web app does all money math in exact decimal arithmetic instead of JavaScript floats, so large amounts like 12345678901234567.89 survive byte-exactly. Amount inputs now reject non-numeric text outright, and -0 can no longer be produced.
  • New-release notifications (#98) — the server checks econumo.com once a day for a new release (a single server-side request, nothing about your instance is sent) and the app shows a subtle badge plus a dismissible notice when one is available. Opt out with ECONUMO_CHECK_UPDATES=false.
  • Anonymous product analytics (#99, #100) — the web app now reports anonymous, cookieless usage events (feature usage only — never amounts, names, or any personal data) to help prioritize development. Self-hosters can disable it instance-wide with ECONUMO_ANALYTICS=false.

Security hardening

An authorization audit of every write endpoint, plus fixes for the findings of an external security review (#106, #108, #109, #110):

  • Fixed IDOR bugs where a valid foreign UUID was enough to mutate another user's data (transaction updates/transfers, budget folders and envelopes), and closed several secondary authorization gaps.
  • Budget sharing now fails closed: only an accepted owner/admin can grant or revoke access, and the owner can no longer be revoked (previously anyone knowing a budget UUID could remove members).
  • Read-only budget guests really are read-only now — budget metadata edits are rejected server-side and the Edit dialog is read-only for guests (#112); tag/payee reordering is owner-only (#108, #109).
  • Request bodies are capped (1 MiB; CSV import bounded as a whole), and the server got proper read/write/idle timeouts.

Fixes & improvements

  • Budget: archived categories with history stay visible, folder visibility corrected, and Spent is no longer shown negated (#104); the Spent column aligns across rows in edit mode (#107); a revoked or deleted default budget no longer strands you on an endless loader (#102).
  • A failed update check is silent instead of showing an amber sync icon (#101).
  • The SPA sends explicit Cache-Control headers, so browsers pick up new versions reliably after an upgrade (#96).
  • Category/payee pickers in the transaction form are keyboard-reachable in Safari (#89).
  • Copy button placement fixed in the created-token dialog.

Upgrading

Drop-in for self-hosters: pull the new image and restart — migrations run on boot, and the bundled web app always matches the API.

Two notes for third-party API clients (the bundled SPA is unaffected):

  • Money amounts in JSON are now decimal strings (e.g. "10.50"), in both requests and responses.
  • Account sharing moved to POST /api/v1/account/{grant,accept,decline,revoke}-access; the old connection/set-account-access and connection/revoke-account-access endpoints are gone.

The ghcr.io/econumo/econumo:latest image tag points to this build; to pin the exact version use ghcr.io/econumo/econumo:v1.1.0.

Contributors

@dmtrkzntsv — with Claude (Fable 5 and Opus 4.8) co-authoring throughout.

Full changelog: v1.0.2...v1.1.0

Breaking Changes

  • Removed legacy account‑sharing endpoints `connection/set-account-access` and `connection/revoke-account-access`
  • Money amounts in JSON are now decimal strings (e.g., "10.50") instead of numeric types

Security Fixes

  • Fixed IDOR bugs allowing mutation of other users' data via foreign UUIDs (transactions, budget folders/envelopes).
  • Budget sharing now fails closed: only accepted owners/admins can grant/revoke access; owner cannot be revoked.
  • Read‑only guests are truly read‑only – metadata edits rejected server‑side and UI dialogs disabled for guests.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Econumo

Get notified when new releases ship.

Sign up free

About Econumo

Budgeting application for managing personal and family finances, supporting multiple currencies, joint accounts, and budgets.

All releases →

Related context

Beta — feedback welcome: [email protected]