Skip to content
Heist/ feed
Back to feed
Medium

Security advisory

Type: advisorySources: OSVCVE: CVE-2021-43820

Seafile is an open source cloud storage system. A sync token is used in Seafile file syncing protocol to authorize access to library data. To improve performance, the token is cached in memory in seaf-server. Upon receiving a token from sync client or SeaDrive client, the server checks whether the token exist in the cache. However, if the token exists in cache, the server doesn't check whether it's associated with the specific library in the URL. This vulnerability makes it possible to use any valid sync token to access data from any **known** library. Note that the attacker has to first find out the ID of a library which it has no access to. The library ID is a random UUID, which is not possible to be guessed. There are no workarounds for this issue.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2021-43820
Confirmed fixed CVEs
Not specified
Updated in this feed
31 Oct 2026, 13:02 UTC · Revision 1

Source evidence

CVE-2021-43820

core-osv · Original source

Published 14 Dec 2021, 19:15 UTC

Seafile is an open source cloud storage system. A sync token is used in Seafile file syncing protocol to authorize access to library data. To improve performance, the token is cached in memory in seaf-server. Upon receiving a token from sync client or SeaDrive client, the server checks whether the token exist in the cache. However, if the token exists in cache, the server doesn't check whether it's associated with the specific library in the URL. This vulnerability makes it possible to use any valid sync token to access data from any **known** library. Note that the attacker has to first find out the ID of a library which it has no access to. The library ID is a random UUID, which is not possible to be guessed. There are no workarounds for this issue.

osv:CVE-2021-43820
Complete source record
{
  "id": "06d216ab9827068f7222b88d26412f76a6a25af4feabcdea54b283b440503508",
  "url": "https://osv.dev/vulnerability/CVE-2021-43820",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "CVE-2021-43820",
    "summary": "Seafile is an open source cloud storage system. A sync token is used in Seafile file syncing protocol to authorize access to library data. To improve performance, the token is cached in memory in seaf-server. Upon receiving a token from sync client or SeaDrive client, the server checks whether the token exist in the cache. However, if the token exists in cache, the server doesn't check whether it's associated with the specific library in the URL. This vulnerability makes it possible to use any valid sync token to access data from any **known** library. Note that the attacker has to first find out the ID of a library which it has no access to. The library ID is a random UUID, which is not possible to be guessed. There are no workarounds for this issue.",
    "evidence": "osv:CVE-2021-43820",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2021-43820",
      "aliases": [
        "CVE-2021-43820",
        "GHSA-m3wc-jv6r-hvv8"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/haiwen/seafile-server",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "807867afb7a86f526a6584278914ce9f3f51d1da"
                },
                {
                  "introduced": "a967d5094ff398291c7112df0f1bdd87f83e2d83"
                },
                {
                  "fixed": "6776e3063198eb20cf675aedbe28e03befdb1eeb"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:seafile:seafile_server:*:*:*:*:community:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "8.0.8"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "cpe": "cpe:2.3:a:seafile:seafile_server:*:*:*:*:community:*:*:*",
                    "range": [
                      {
                        "introduced": "9.0.0"
                      },
                      {
                        "fixed": "9.0.2"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v9.0.1-server",
            "v9.0.0-server",
            "seatable-3.0.0",
            "seatable-2.8.0",
            "seatable-2.7.0",
            "seatable-2.6.0",
            "seatable-2.5.0",
            "seatable-2.4.0",
            "seatable-2.3.1",
            "seatable-2.3.0",
            "v8.0.7-server",
            "v8.0.6-server",
            "v8.0.5-server",
            "seatable-2.1.0",
            "seatable-2.2.0",
            "v8.0.4-server",
            "seatable-2.0.0",
            "seatable-1.8.0",
            "v8.0.3-server",
            "v8.0.2-server",
            "v8.0.1-server",
            "v8.0.0-server",
            "seatable-0.9.7",
            "v7.1.3-server",
            "v7.1.2-server",
            "seatable-0.9.6",
            "seatable-0.9.5",
            "v7.1.1-server",
            "seatable-0.9.4",
            "seatable-0.9.3",
            "v7.1.0-server",
            "v7.0.2-server",
            "v7.0.1-server",
            "v7.0.0-server",
            "docs-1.2.0",
            "docs-1.1.0",
            "docs-1.0.4",
            "docs-1.0.3",
            "docs-1.0.2",
            "docs-1.0.1",
            "docs-1.0.0",
            "v6.3.4-server",
            "v6.3.3-server",
            "v6.3.2-server",
            "v6.3.1-server",
            "v6.3.0-server",
            "v6.2.2-server",
            "v6.2.1-server",
            "v6.2.0-server",
            "v6.1.1-server",
            "v6.1.0-server",
            "v6.0.10-server",
            "v6.0.9-server",
            "v6.0.8-server",
            "v6.0.6-server",
            "v6.0.5-server",
            "v6.0.4-server",
            "v6.0.3-server",
            "v6.0.2-server",
            "v6.0.1-server"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2021-43820.json",
            "vanir_signatures": [
              {
                "id": "CVE-2021-43820-9ca02393",
                "digest": {
                  "length": 1239,
                  "function_hash": "9095037111171242588963145608399359474"
                },
                "source": "https://github.com/haiwen/seafile-server/commit/807867afb7a86f526a6584278914ce9f3f51d1da",
                "target": {
                  "file": "server/http-server.c",
                  "function": "validate_token"
                },
                "deprecated": false,
                "signature_type": "Function",
                "signature_version": "v1"
              },
              {
                "id": "CVE-2021-43820-cb40045f",
                "digest": {
                  "threshold": 0.9,
                  "line_hashes": [
                    "213737851454335559548919519363765960869",
                    "274519143902452280308671137250744933943",
                    "285948318068647114674340800231249384306",
                    "267983930371303363394273687941836395730"
                  ]
                },
                "source": "https://github.com/haiwen/seafile-server/commit/807867afb7a86f526a6584278914ce9f3f51d1da",
                "target": {
                  "file": "server/http-server.c"
                },
                "deprecated": false,
                "signature_type": "Line",
                "signature_version": "v1"
              }
            ],
            "vanir_signatures_modified": "2026-10-20T14:32:31Z"
          }
        }
      ],
      "modified": "2026-10-20T14:32:31.150702435Z",
      "provider": "osv",
      "references": [
        "https://github.com/haiwen/seafile-server/security/advisories/GHSA-m3wc-jv6r-hvv8",
        "https://github.com/haiwen/seafile-server/pull/520"
      ],
      "provider_metadata": {
        "unresolved_ranges": [
          {
            "cpes": [
              "cpe:2.3:a:seafile:seafile_server:*:*:*:*:professional:*:*:*"
            ],
            "vendor_product": "seafile:seafile_server",
            "extracted_events": [
              {
                "range": [
                  {
                    "fixed": "8.0.15"
                  }
                ],
                "source": "CPE_RANGE"
              }
            ]
          }
        ]
      }
    },
    "related_cves": [
      {
        "value": "CVE-2021-43820",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 389714,
  "published_at": "2021-12-14T19:15:07.617+00:00"
}