Skip to content

GHSA-mfmp-8mqg-q4wm CVE-2022-4803 GO-2023-1291

usememos/memos Improper Access Control vulnerability

High Go
Severity
8.8 / 10
High · CVSS 3.1
Exploit chance (EPSS)
0.87%
Chance of exploitation in the next 30 days. Higher than 58.71% of scored vulnerabilities.
Known exploited
No
Not in CISA's catalog
Weakness
CWE-284 Improper Access Control
CWE-639 Authorization Bypass Through User-Controlled Key
Fix
0.9.1
Upgrade github.com/usememos/memos to this version or later

Description

usememos/memos 0.9.0 and prior is vulnerable to Improper Access Control.

Affected versions

Go

PackageVulnerableFixed in
github.com/usememos/memos
< 0.9.1
0.9.1

How to fix

Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.

github.com/usememos/memos Go → 0.9.1

go
go get github.com/usememos/memos@v0.9.1 && go mod tidy

Severity breakdown

CVSS 3.1 8.8

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Attack vector
Network
Attack complexity
Low
Privileges required
Low
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Weakness

CWE-284: Improper Access Control

The product does not restrict or incorrectly restricts access to a resource from an unauthorized actor.

How to prevent it
  • Architecture and Design, Operation: Very carefully manage the setting, management, and handling of privileges. Explicitly manage trust zones in the software.
  • Architecture and Design: Compartmentalize the system to have "safe" areas where trust boundaries can be unambiguously drawn. Do not allow sensitive data to go outside of the trust boundary and always be careful when interfacing with a compartment outside of the safe area. Ensure that appropriate compartmentalization is built into the system design, and the compartmentalization allows for and reinforces privilege separation functionality. Architects and designers should rely on the principle of least privilege to decide the appropriate time to use privileges and the time to drop privileges.

CWE-639: Authorization Bypass Through User-Controlled Key

The system's authorization functionality does not prevent one user from gaining access to another user's data or record by modifying the key value identifying the data.

How to prevent it
  • Architecture and Design: For each and every data access, ensure that the user has sufficient privilege to access the record that is being requested.
  • Architecture and Design, Implementation: Make sure that the key that is used in the lookup of a specific user's record is not controllable externally by the user or that any tampering can be detected.
  • Architecture and Design: Use encryption in order to make it more difficult to guess other legitimate values of the key or associate a digital signature with the key so that the server can verify that there has been no tampering.

References

Timeline

  1. Published
  2. Last updated by the source
  3. Latest EPSS score
AdvisorySeverityWhy it's related
GHSA-gqp3-hfc3-8q54
Memos has an Incorrect Privilege Assignment issue
Medium Also affects github.com/usememos/memos
GHSA-qgjp-5g5x-vhq2
memos lacks file name validation or verification
Medium Also affects github.com/usememos/memos
GHSA-99m2-qwx6-2w6f
memos vulnerability allows arbitrarily modification or deletion registered identity providers
Medium Also affects github.com/usememos/memos
GHSA-mg56-wc4q-rw4w
memos vulnerability allows the creation of arbitrary accounts
High Also affects github.com/usememos/memos
GHSA-8p44-g572-557h
memos vulnerability allows arbitrarily modification or deletion of attachments
Medium Also affects github.com/usememos/memos
GHSA-8jcj-g9f4-qx42
memos vulnerability allows arbitrarily reactions deletion
Medium Also affects github.com/usememos/memos
GHSA-mr34-8733-grr2
Memos' Access Tokens Stay Valid after User Password Change
High Also affects github.com/usememos/memos
GHSA-cgrg-86m5-xm4w
Memos Vulnerable to Stored Cross-Site Scripting
Medium Also affects github.com/usememos/memos
Is this in your code?

MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.

Check your repos with MergeHarbor