sync-in-server

Ecosystem: npm

Downloads: 3.62 K

Vulnerabilities from the last (months)
  • 0CriticalAffects 0 versions
  • 2HighAffects 2 versions
  • 0MediumAffects 0 versions
  • 5ModerateAffects 5 versions
  • 0LowAffects 0 versions
Severity distribution (all time)
7vulnerabilities
  • Critical0 (0.0%)
  • High2 (28.6%)
  • Medium0 (0.0%)
  • Moderate5 (71.4%)
  • Low0 (0.0%)

Monthly breakdown

  • Critical
  • High
  • Medium
  • Moderate
  • Low
  • 4 vulnerabilities
    • Critical: 0
    • High: 1
    • Medium: 0
    • Moderate: 3
    • Low: 0
  • 1 vulnerabilities
    • Critical: 0
    • High: 1
    • Medium: 0
    • Moderate: 0
    • Low: 0
  • 1 vulnerabilities
    • Critical: 0
    • High: 0
    • Medium: 0
    • Moderate: 1
    • Low: 0
  • 1 vulnerabilities
    • Critical: 0
    • High: 0
    • Medium: 0
    • Moderate: 1
    • Low: 0

Vulnerabilities (7)

Known vulnerabilities affecting sync-in-server, based on data from OSV.

Vulnerabilities affecting sync-in-server
IDSeveritySummaryAffected versionsPublishedSource
GHSA-274f-6w77-8qm9Moderate@sync-in/server vulnerable to TOTP Brute-Force via `POST /api/app/sync/register`**Affected component:** Sync-in Server v2.3.0, `POST /api/app/sync/register`. **Required attacker capability:** Valid login and password for a TOTP-enabled account with desktop sync permission. ## Summary `POST /api/app/sync/register` accepts credentials and a TOTP code to register a desktop sync client. In the vulnerable version, on a failed TOTP attempt, `SyncClientsManager.register()` called `updateAccesses(user, ip, false)`, which hit a freeze branch that wrote `passwordAttempts` back unchanged. The counter never reached `USER_MAX_PASSWORD_ATTEMPTS` (10), so the account lockout gate nev
  • < 2.4.0
GitHub (opens in a new tab)
GHSA-29hq-23m2-2j47ModerateSync-in Server has Username/Login Enumeration via Timing Side-Channel on POST /api/auth/login (incomplete fix of the prior timing-attack advisory)## Summary validateUser() in backend/src/authentication/providers/mysql/auth-provider-mysql.service.ts returns immediately when the supplied login/email does not match any account, without ever calling comparePassword(): async validateUser(loginOrEmail: string, password: string, ip?: string, scope?: AUTH_SCOPE): Promise<UserModel> { let user: UserModel try { user = await this.usersManager.findUser(loginOrEmail, false) } catch (e) { ... } if (!user) { this.logger.warn(...) return null // <-- comparePassword() is never reached here }
  • < 2.4.1
GitHub (opens in a new tab)
GHSA-92cr-jxw4-5wjgHighSync-in Server has a complete 2FA Bypass via `POST /api/auth/token`**Affected component:** Sync-in Server v2.3.0, `POST /api/auth/token` (`auth.controller.ts:50-55`). **Required attacker capability:** Valid username and password for a 2FA-enabled account. ## Summary `POST /api/auth/token` authenticates with username and password only, then calls `getTokens()`, which returns unrestricted Bearer access and refresh JWTs without checking whether the account has TOTP 2FA enabled. An attacker who already knows valid credentials for a 2FA-enabled account can bypass 2FA in a single request. The parallel login endpoint (`POST /api/auth/login`) correctly enforces 2
  • < 2.4.0
GitHub (opens in a new tab)
GHSA-jx63-h26r-8cphModerateSync-in Server has a ReDoS via Unsanitized Regex in Sync Diff `pathFilters`**Affected component:** Sync-in Server v2.3.0, `POST /api/app/sync/operation/diff/:id`, vulnerable implementation of `pathFilters` in `backend/src/applications/sync/dtos/sync-operations.dto.ts`. ## Summary In the vulnerable version, the sync diff endpoint accepted a user-controlled regex pattern through `pathFilters` and compiled it into a `RegExp` without complexity validation. The resulting regex was then executed synchronously against relative file paths during diff generation. A catastrophic-backtracking pattern, such as `^(a+)+b`, can block the affected Node.js event loop when evaluate
  • < 2.4.0
GitHub (opens in a new tab)
GHSA-q4x5-8cj6-52wgHighSync-in Server: SSRF protection bypass via IPv4-mapped IPv6 addresses in regExpPrivateIPSummary: The private IP blocklist regex used in the URL download feature does not match IPv4-mapped IPv6 addresses (e.g. ::ffff:127.0.0.1), allowing SSRF protection to be bypassed on dual-stack systems. Affected components backend/src/applications/files/services/files-manager.service.ts – downloadFromUrl() checks regExpPrivateIP against request.socket.remoteAddress. backend/src/applications/files/utils/url-file.ts – regExpPrivateIP does not include ::ffff:<ipv4> variants. Details: The regExpPrivateIP regex in backend/src/applications/files/utils/url-file.ts correctly blocks standard IPv4 pr
  • < 2.3.0
GitHub (opens in a new tab)
GHSA-43fj-qp3h-hrh5ModerateSync-in Server has Username Enumeration via Timing Attack### Summary The `/api/auth/login` endpoint contains a logic flaw that allows unauthenticated remote attackers to enumerate valid usernames by measuring the application's response time. ### Details The logic flaw can be located at the below point in source: https://github.com/Sync-in/server/blob/7868bb2b3025f92e6c38087456304758713971b2/backend/src/applications/users/services/users-queries.service.ts#L91-L95 Endpoints used for authentication should respond to the user with a consistent cadence, preventing remote actors from deriving sensitive information about an application based on backend b
  • < 2.2.0
GitHub (opens in a new tab)
GHSA-9jmq-xgjm-p8c2ModerateSync-in Server has a stored cross-site scripting (XSS) vulnerabilityA Stored Cross-Site Scripting (XSS) vulnerability in Sync-in Server before 1.9.3 allows an authenticated attacker to execute arbitrary JavaScript in a victim's browser. By uploading a crafted SVG file containing a malicious payload, an attacker can access and exfiltrate sensitive information, including the user's session cookies.
  • < 1.9.3
GitHub (opens in a new tab)
  • GHSA-274f-6w77-8qm9Moderate
    @sync-in/server vulnerable to TOTP Brute-Force via `POST /api/app/sync/register`
    • < 2.4.0

    **Affected component:** Sync-in Server v2.3.0, `POST /api/app/sync/register`. **Required attacker capability:** Valid login and password for a TOTP-enabled account with desktop sync permission. ## Summary `POST /api/app/sync/register` accepts credentials and a TOTP code to register a desktop sync client. In the vulnerable version, on a failed TOTP attempt, `SyncClientsManager.register()` called `updateAccesses(user, ip, false)`, which hit a freeze branch that wrote `passwordAttempts` back unchanged. The counter never reached `USER_MAX_PASSWORD_ATTEMPTS` (10), so the account lockout gate nev

    CVE: CVE-2026-58271

  • GHSA-29hq-23m2-2j47Moderate
    Sync-in Server has Username/Login Enumeration via Timing Side-Channel on POST /api/auth/login (incomplete fix of the prior timing-attack advisory)
    • < 2.4.1

    ## Summary validateUser() in backend/src/authentication/providers/mysql/auth-provider-mysql.service.ts returns immediately when the supplied login/email does not match any account, without ever calling comparePassword(): async validateUser(loginOrEmail: string, password: string, ip?: string, scope?: AUTH_SCOPE): Promise<UserModel> { let user: UserModel try { user = await this.usersManager.findUser(loginOrEmail, false) } catch (e) { ... } if (!user) { this.logger.warn(...) return null // <-- comparePassword() is never reached here }

    CVE: CVE-2026-58272

  • GHSA-92cr-jxw4-5wjgHigh
    Sync-in Server has a complete 2FA Bypass via `POST /api/auth/token`
    • < 2.4.0

    **Affected component:** Sync-in Server v2.3.0, `POST /api/auth/token` (`auth.controller.ts:50-55`). **Required attacker capability:** Valid username and password for a 2FA-enabled account. ## Summary `POST /api/auth/token` authenticates with username and password only, then calls `getTokens()`, which returns unrestricted Bearer access and refresh JWTs without checking whether the account has TOTP 2FA enabled. An attacker who already knows valid credentials for a 2FA-enabled account can bypass 2FA in a single request. The parallel login endpoint (`POST /api/auth/login`) correctly enforces 2

    CVE: CVE-2026-58269

  • GHSA-jx63-h26r-8cphModerate
    Sync-in Server has a ReDoS via Unsanitized Regex in Sync Diff `pathFilters`
    • < 2.4.0

    **Affected component:** Sync-in Server v2.3.0, `POST /api/app/sync/operation/diff/:id`, vulnerable implementation of `pathFilters` in `backend/src/applications/sync/dtos/sync-operations.dto.ts`. ## Summary In the vulnerable version, the sync diff endpoint accepted a user-controlled regex pattern through `pathFilters` and compiled it into a `RegExp` without complexity validation. The resulting regex was then executed synchronously against relative file paths during diff generation. A catastrophic-backtracking pattern, such as `^(a+)+b`, can block the affected Node.js event loop when evaluate

    CVE: CVE-2026-58270

  • GHSA-q4x5-8cj6-52wgHigh
    Sync-in Server: SSRF protection bypass via IPv4-mapped IPv6 addresses in regExpPrivateIP
    • < 2.3.0

    Summary: The private IP blocklist regex used in the URL download feature does not match IPv4-mapped IPv6 addresses (e.g. ::ffff:127.0.0.1), allowing SSRF protection to be bypassed on dual-stack systems. Affected components backend/src/applications/files/services/files-manager.service.ts – downloadFromUrl() checks regExpPrivateIP against request.socket.remoteAddress. backend/src/applications/files/utils/url-file.ts – regExpPrivateIP does not include ::ffff:<ipv4> variants. Details: The regExpPrivateIP regex in backend/src/applications/files/utils/url-file.ts correctly blocks standard IPv4 pr

    CVE: CVE-2026-47684

  • GHSA-43fj-qp3h-hrh5Moderate
    Sync-in Server has Username Enumeration via Timing Attack
    • < 2.2.0

    ### Summary The `/api/auth/login` endpoint contains a logic flaw that allows unauthenticated remote attackers to enumerate valid usernames by measuring the application's response time. ### Details The logic flaw can be located at the below point in source: https://github.com/Sync-in/server/blob/7868bb2b3025f92e6c38087456304758713971b2/backend/src/applications/users/services/users-queries.service.ts#L91-L95 Endpoints used for authentication should respond to the user with a consistent cadence, preventing remote actors from deriving sensitive information about an application based on backend b

    CVE: CVE-2026-41161

  • GHSA-9jmq-xgjm-p8c2Moderate
    Sync-in Server has a stored cross-site scripting (XSS) vulnerability
    • < 1.9.3

    A Stored Cross-Site Scripting (XSS) vulnerability in Sync-in Server before 1.9.3 allows an authenticated attacker to execute arbitrary JavaScript in a victim's browser. By uploading a crafted SVG file containing a malicious payload, an attacker can access and exfiltrate sensitive information, including the user's session cookies.

    CVE: CVE-2025-67438

Showing 1-7 of 7 vulnerabilities