1
0
Ahmed Bouhuolia ace15dbdeb fix(server): use CSPRNG for attachment S3 keys (GHSA-gj48-p5ff-g67f)
The multer-s3 storage factory used `Date.now().toString()` as the S3 key
for every upload, yielding a 13-digit ms-epoch key. The keyspace for any
time window equals the millisecond count of that window, so an attacker
holding a registered account can enumerate keys for known upload moments
(e.g. ~10 minutes for a 10-second window with a 10-proxy rotation), then
download files via `GET /attachments/:id/presigned-url`. Two uploads in
the same millisecond also collide and silently overwrite each other.

Replace the key callback with `${organizationId}/${randomUUID()}`:

  * `randomUUID()` from `node:crypto` is a v4 UUID with 122 bits of
    entropy, making brute-force enumeration infeasible.
  * The `<organizationId>/` prefix (read from the `nestjs-cls` store
    populated by `ClsModule` middleware in `App.module.ts`) limits the
    blast radius of any hypothetical bucket-listing leak to a single
    tenant.

Add a tenant migration applying `unique` to `documents.key` so any future
key collision surfaces as a DB error instead of a silent S3 overwrite.

Legacy 13-digit numeric keys remain accessible via their stored values;
only new uploads use the new format.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 19:38:39 +02:00
2025-10-18 21:38:21 +02:00
2023-02-07 19:28:38 +02:00
wip
2026-01-15 22:04:51 +02:00
2026-01-28 23:40:32 +02:00
2026-01-09 23:38:52 +02:00
2023-11-05 02:58:48 +02:00
2024-12-09 12:23:46 +02:00
2026-01-09 23:38:52 +02:00
2024-10-06 17:20:28 +02:00
wip
2026-03-27 16:11:33 +02:00
2026-03-05 23:37:54 +02:00
2024-10-06 17:20:28 +02:00
2026-01-31 15:31:17 +02:00

Bigcapital

Simple, smart online accounting software for small and medium businesses.

twitter

Bigcapital Cloud

What's Bigcapital?

Bigcapital is a smart and open-source accounting and inventory software, Bigcapital keeps all business finances in right place and automates accounting processes to give the business powerful and intelligent financial statements and reports to help in making decisions.

Getting Started

We've got serveral options on dev and prod depending on your need to get started quickly with Bigcapital.

Self-hosted

Bigcapital is available open-source under AGPL license. You can host it on your own servers using Docker.

Docker

To get started with self-hosted with Docker and Docker Compose, take a look at the Docker guide.

Development

Local Setup

To get started locally, we have a guide to help you.

Gitpod

  • Click the Gitpod button below to open this project in development mode.
  • This will open and configure the workspace in your browser with all the necessary dependencies.

Open in Gitpod

Headless Accounting

You can integrate Bigcapital API with your system to organize your transactions in double-entry system to get the best financial reports.

Run in Postman

Resources

Changelog

Please see Releases for more information what has changed recently.

Contact us

Meet our sales team for any commercial inquiries.

Book us with Cal.com

Recognition

Featured on Hacker News

Contributors

Thanks goes to these wonderful people (emoji key):

Ahmed Bouhuolia
Ahmed Bouhuolia

💻
Ameir Abdeldayem
Ameir Abdeldayem

🐛
ElforJani13
ElforJani13

💻
Lars Scheibling
Lars Scheibling

🐛
Suhaib Affan
Suhaib Affan

💻
Kalliopi Pliogka
Kalliopi Pliogka

🐛
Robert Koch
Robert Koch

💻
Casper Schuijt
Casper Schuijt

🐛
ANasouf
ANasouf

💻
Ragnar Laud
Ragnar Laud

🐛
Asena
Asena

🐛
Ben Snyder
Ben Snyder

💻
Vederis Leunardus
Vederis Leunardus

💻
Chris Cantrell
Chris Cantrell

🐛
Denis
Denis

🐛
Sachin Mittal
Sachin Mittal

🐛
Camilo Oviedo
Camilo Oviedo

💻
Mantey
Mantey

🐛
Daniel Lo Nigro
Daniel Lo Nigro

🐛 💻

This project follows the all-contributors specification. Contributions of any kind welcome!

Languages
TypeScript 97.1%
SCSS 1.9%
Shell 0.4%
HTML 0.3%
JavaScript 0.2%