fix(deps): update module github.com/argoproj/argo-cd/v3 to v3.2.12 [security]#255
Open
renovate[bot] wants to merge 1 commit into
Open
fix(deps): update module github.com/argoproj/argo-cd/v3 to v3.2.12 [security]#255renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
Contributor
Author
ℹ Artifact update noticeFile name: go.modIn order to perform the update(s) described in the table above, Renovate ran the
Details:
|
Codecov Report✅ All modified and coverable lines are covered by tests. 🚀 New features to boost your workflow:
|
Contributor
Author
ℹ️ Artifact update noticeFile name: go.modIn order to perform the update(s) described in the table above, Renovate ran the
Details:
|
449dcdf to
8b750fa
Compare
8b750fa to
97d7089
Compare
97d7089 to
7f3398e
Compare
7f3398e to
646bd14
Compare
646bd14 to
00bdb04
Compare
00bdb04 to
34a511a
Compare
34a511a to
3f97929
Compare
3f97929 to
75a90e1
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v3.1.2→v3.2.12Repository Credentials Race Condition Crashes Argo CD Server
CVE-2025-55191 / GHSA-g88p-r42r-ppp9
More information
Details
Summary
A race condition in the repository credentials handler can cause the Argo CD server to panic and crash when concurrent operations are performed on the same repository URL.
Details
The vulnerability is located in numerous repository related handlers in the
util/db/repository_secrets.gofile. For example, in thesecretToRepoCredfunction. The issue manifests as a concurrent map access panic:The race condition occurs due to:
A valid API token with
repositoriesresource permissions (create,update, ordeleteactions) is required to trigger the race condition.Impact
This vulnerability causes the entire Argo CD server to crash and become unavailable. Attackers can repeatedly and continuously trigger the race condition to maintain a denial-of-service state, disrupting all GitOps operations. Default ArgoCD configuration is vulnerable.
The affected code was originally introduced in PR #6103 and released in v2.1.0.
This data race was addressed by deep-copying the
Secretobjects before reading/writing.Credits
This vulnerability was found, reported and fixed by:
@thevilledev
The Argo team would like to thank him for his responsible disclosure and constructive communications during the resolve of this issue.
Severity
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:HReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Unauthenticated argocd-server panic via a malicious Bitbucket-Server webhook payload
CVE-2025-59531 / GHSA-f9gq-prrc-hrhc
More information
Details
Summary
Unpatched Argo CD versions are vulnerable to malicious API requests which can crash the API server and cause denial of service to legitimate clients.
With the default configuration, no
webhook.bitbucketserver.secretset, Argo CD’s /api/webhook endpoint will crash the entire argocd-server process when it receives a Bitbucket-Server push event whose JSON fieldrepository.links.cloneis anything other than an array.A single unauthenticated curl request can push the control-plane into CrashLoopBackOff; repeating the request on each replica causes a complete outage of the API.
Details
If links.clone is a string, number, object, or null, the first type assertion panics:
interface conversion: interface {} is string, not []interface {}
The worker goroutine created by startWorkerPool lacks a recover, so the panic terminates the whole binary.
PoC
Save as payload-panic.json - note the non-array links.clone.
{ "eventKey": "repo:refs_changed", "repository": { "name": "guestbook", "fullName": "APP/guestbook", "links": { "clone": "boom" } }, "changes": [ { "ref": { "id": "refs/heads/master" } } ] }curl -k -X POST https://argocd.example.com/api/webhook \ -H 'X-Event-Key: repo:refs_changed' \ -H 'Content-Type: application/json' \ --data-binary @​payload-panic.jsonObserved crash (argocd-server restart):
Mitigation
If you use Bitbucket Server and need to handle webhook events, configure a webhook secret to ensure only trusted parties can invoke the webhook handler.
If you do not use Bitbucket Server, you can set the webhook secret to a long, random value to effectively disable webhook handling for Bitbucket Server payloads.
apiVersion: v1 kind: Secret metadata: name: argocd-secret type: Opaque data: + webhook.bitbucketserver.secret: <your base64-encoded secret here>For more information
Credits
Discovered by Jakub Ciolek at AlphaSense.
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
argo-cd vulnerable unauthenticated DoS via malformed Gogs webhook payload
CVE-2025-59537 / GHSA-wp4p-9pxh-cgx2
More information
Details
Summary
Unpatched Argo CD versions are vulnerable to malicious API requests which can crash the API server and cause denial of service to legitimate clients.
With the default configuration, no
webhook.gogs.secretset, Argo CD’s /api/webhook endpoint will crash the entire argocd-server process when it receives a Gogs push event whose JSON fieldcommits[].repois not set or is null.Details
Users can access
/api/webhookwithout authentication, and when accessing this endpoint, theHandlerfunction parses webhook type messages according to theheader (e.g. X-Gogs-Event)andbodyparameters provided by the user. TheParsefunction simply unmarshals JSON-type messages. In other words, it returns a data structure even if the data structure is not exactly matched.The
affectedRevisionInfofunction parses data according to webhook event types(e.g.gogsclient.PushPayload). However, due to the lack of data structure validation corresponding to these events, an attacker can cause a Denial of Service (DoS) attack by sending maliciously crafted data. because of Repository is Pointer Type.PoC
payload-gogs.json
{ "ref": "refs/heads/master", "before": "0000000000000000000000000000000000000000", "after": "0a05129851238652bf806a400af89fa974ade739", "commits": [{}] }An attacker can cause a DoS and make the argo-cd service unavailable by continuously sending unauthenticated requests to
/api/webhook.Mitigation
If you use Gogs and need to handle webhook events, configure a webhook secret to ensure only trusted parties can invoke the webhook handler.
If you do not use Gogs, you can set the webhook secret to a long, random value to effectively disable webhook handling for Gogs payloads.
apiVersion: v1 kind: Secret metadata: name: argocd-secret type: Opaque data: + webhook.gogs.secret: <your base64-encoded secret here>For more information
Credit
Sangjun Song (s0ngsari) at Theori (theori.io)
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Argo CD Unauthenticated Remote DoS via malformed Azure DevOps git.push webhook
CVE-2025-59538 / GHSA-gpx4-37g2-c8pv
More information
Details
Summary
In the default configuration,
webhook.azuredevops.usernameandwebhook.azuredevops.passwordnot set, Argo CD’s /api/webhook endpoint crashes the entire argocd-server process when it receives an Azure DevOps Push event whose JSON array resource.refUpdates is empty.The slice index [0] is accessed without a length check, causing an index-out-of-range panic.
A single unauthenticated HTTP POST is enough to kill the process.
Details
If the attacker supplies "refUpdates": [], the slice has length 0.
The webhook code has no recover(), so the panic terminates the entire binary.
PoC
payload-azure-empty.json:
{ "eventType": "git.push", "resource": { "refUpdates": [], "repository": { "remoteUrl": "https://example.com/dummy", "defaultBranch": "refs/heads/master" } } }curl call:
curl -k -X POST https://argocd.example.com/api/webhook \ -H 'X-Vss-ActivityId: 11111111-1111-1111-1111-111111111111' \ -H 'Content-Type: application/json' \ --data-binary @​payload-azure-empty.jsonObserved crash:
Mitigation
If you use Azure DevOps and need to handle webhook events, configure a webhook secret to ensure only trusted parties can invoke the webhook handler.
If you do not use Azure DevOps, you can set the webhook secrets to long, random values to effectively disable webhook handling for Azure DevOps payloads.
For more information
Credits
Discovered by Jakub Ciolek at AlphaSense.
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Argo CD: Stored XSS in application link annotations enables developer-to-admin privilege escalation
CVE-2026-45738 / GHSA-h98r-wv3h-fr38
More information
Details
Summary
A user with application write access (developer role) can set
link.argocd.argoproj.io/*annotations on any ArgoCD Application. These annotation values are rendered in the Summary tab's URLs section as<a href>elements without URL validation. Using the pipe-separator trick (Display Text | javascript:...), an attacker can inject ajavascript:URI while displaying a legitimate-looking label (e.g.GitHub Repo). When a higher-privileged user (admin) clicks the link, arbitrary JavaScript executes in the ArgoCD origin context in the admin's authenticated session context, enabling API exfiltration and privilege escalation from developer to admin.Details
Vulnerable sink:
ui/src/app/applications/components/application-summary/application-summary.tsx:277The annotation value is split on
|.parts[0]becomes the visible link label;parts[1]becomes thehref. No call toisValidURL()is made, unlike the protectedApplicationURLscomponent (application-urls.tsx:72,80) which does validate URLs and blocksjavascript:. Thetarget='_blank'opens a new tab that inherits the ArgoCD origin, giving the injected script same-origin fetch access to all ArgoCD APIs using the victim's authenticated session (credentialedfetch()calls).Root cause: React 16.x does not block
javascript:URIs inhrefattributes (this protection was added in React 19). The helperisValidURL()exists inshared/utils.tsbut is not applied to this sink.CSP: ArgoCD's default Content Security Policy is
frame-ancestors 'self'only — noscript-src, noconnect-src, nodefault-src— providing zero XSS execution mitigation.PoC
Prerequisites: Developer role with application write access (e.g. RBAC:
p, role:developer, applications, *, */*, allow).Step 1 — Set malicious annotation as developer:
The URL section in the admin's Summary tab renders the link as "GitHub Repo" — the
javascript:payload is invisible in the displayed text.Step 2 — Admin opens Summary tab of the annotated application and clicks the link.
Step 3 — JavaScript executes at the ArgoCD origin and exfiltrates admin session data via out-of-band HTTP request. Tested with Burp Collaborator:
Step 4 — Burp Collaborator received the OOB HTTP interaction containing the base64-encoded admin session data. Decoded response:
{"iss":"argocd","loggedIn":true,"username":"admin"}Tested on: ArgoCD v3.3.8 (commit 0850e97), React 16.9.3.
Impact
javascript:href is never visible to the victimno-corsfetch, bypassed by absentconnect-srcCSP)Credits
Discovered and reported by Jan Kahmen (jan@turingpoint.de) — turingpoint.de
Severity
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Release Notes
argoproj/argo-cd (github.com/argoproj/argo-cd/v3)
v3.2.12Compare Source
Quick Start
Non-HA:
HA:
Release Signatures and Provenance
All Argo CD container images are signed by cosign. A Provenance is generated for container images and CLI binaries which meet the SLSA Level 3 specifications. See the documentation on how to verify.
Release Notes Blog Post
For a detailed breakdown of the key changes and improvements in this release, check out the official blog post
Upgrading
If upgrading from a different minor version, be sure to read the upgrading documentation.
Changelog
Bug fixes
2d1a0bb: fix(lint): unnecessary nesting (cherry-pick #27815 for 3.2) (#27819) (@argo-cd-cherry-pick-bot[bot])4caf270: fix: export url validation function (#27816) (@crenshaw-dev)d6e96fc: fix: wrap lines toggle causes log lines to overflow container - Fixes [Issue #27586] (cherry-pick #27627 for 3.2) (#27668) (@argo-cd-cherry-pick-bot[bot])Dependency updates
cff8c03: chore(deps): bump github.com/moby/spdystream from 0.5.0 to 0.5.1 (cherry-pick #27401 for 3.2) (#27735) (@argo-cd-cherry-pick-bot[bot])Other work
3f7237b: Merge commit from fork (@pjiang-dev)c8df5ff: Merge commit from fork (@blakepettersson)Full Changelog: argoproj/argo-cd@v3.2.11...v3.2.12
v3.2.11Compare Source
Quick Start
Non-HA:
HA:
Release Signatures and Provenance
All Argo CD container images are signed by cosign. A Provenance is generated for container images and CLI binaries which meet the SLSA Level 3 specifications. See the documentation on how to verify.
Release Notes Blog Post
For a detailed breakdown of the key changes and improvements in this release, check out the official blog post
Upgrading
If upgrading from a different minor version, be sure to read the upgrading documentation.
Changelog
Bug fixes
de48839: fix(server): Avoid error when attempting a second delete operation (cherry-pick #27495 for 3.2) (#27500) (@argo-cd-cherry-pick-bot[bot])81e6c69: fix(ui): handle 401 error in stream (cherry-pick #26917 for 3.2) (#27572) (@argo-cd-cherry-pick-bot[bot])eadd52e: fix(ui): prevent pod logs viewer crash on stale container index (cherry-pick #27553 for 3.2) (#27563) (@argo-cd-cherry-pick-bot[bot])Dependency updates
37c360e: chore(deps): bump SonarSource/sonarqube-scan-action from 5.3.1 to 8.0.0 (cherry pick 27602 to release 3.2) (#27609) (@dudinea)Other work
9625be3: Merge commit from fork (@alexmt)Full Changelog: argoproj/argo-cd@v3.2.10...v3.2.11
v3.2.10Compare Source
Quick Start
Non-HA:
HA:
Release Signatures and Provenance
All Argo CD container images are signed by cosign. A Provenance is generated for container images and CLI binaries which meet the SLSA Level 3 specifications. See the documentation on how to verify.
Release Notes Blog Post
For a detailed breakdown of the key changes and improvements in this release, check out the official blog post
Upgrading
If upgrading from a different minor version, be sure to read the upgrading documentation.
Changelog
Bug fixes
91da6a0: Revert "fix: prevent automatic refreshes from informer resync and status updates (cherry-pick #25290 for 3.2)" (#27399) (@crenshaw-dev)5426e98: fix(appcontroller): application controller in core mode fails to sync when server.secretkey is missing (#26793) (#27463) (@anandf)c3df70e: fix(cli): uses DrySource revision for app diff/manifests with sourceHydrator (#23817) (cherry-pick #24670 for 3.2) (#27482) (@argo-cd-cherry-pick-bot[bot])3f789ce: fix: avoid stale informer cache in RevisionMetadata handler (cherry-pick #27392 for 3.2) (#27394) (@argo-cd-cherry-pick-bot[bot])860ef55: fix: revert autosync event message format change (cherry-pick #27387 for 3.2) (#27388) (@argo-cd-cherry-pick-bot[bot])Full Changelog: argoproj/argo-cd@v3.2.9...v3.2.10
v3.2.9Compare Source
Quick Start
Non-HA:
HA:
Release Signatures and Provenance
All Argo CD container images are signed by cosign. A Provenance is generated for container images and CLI binaries which meet the SLSA Level 3 specifications. See the documentation on how to verify.
Release Notes Blog Post
For a detailed breakdown of the key changes and improvements in this release, check out the official blog post
Upgrading
If upgrading from a different minor version, be sure to read the upgrading documentation.
Changelog
Bug fixes
8420af5: fix(ci): run yarn install with --frozen-lockfile (cherry-pick #27099 for 3.2) (#27355) (@dudinea)d76e1bd: fix(ui): OCI revision metadata never renders due to conflicting guard clause (#26948) (cherry-pick #27097 for 3.2) (#27364) (@argo-cd-cherry-pick-bot[bot])f9623ce: fix: prevent automatic refreshes from informer resync and status updates (cherry-pick #25290 for 3.2) (#27236) (@aali309)Dependency updates
a39f06d: chore(deps): bump fast-xml-parser from 4.5.3 to 4.5.6 in /ui - 3.2 (#27361) (@keithchong)9ff165a: chore(deps): update notifications-engine dependency in release-3.2 to v0.5.1-0.20260316232552-d27ba0152c1c (#27094) (@pasha-codefresh)Full Changelog: argoproj/argo-cd@v3.2.8...v3.2.9
v3.2.8Compare Source
Quick Start
Non-HA:
HA:
Release Signatures and Provenance
All Argo CD container images are signed by cosign. A Provenance is generated for container images and CLI binaries which meet the SLSA Level 3 specifications. See the documentation on how to verify.
Release Notes Blog Post
For a detailed breakdown of the key changes and improvements in this release, check out the official blog post
Upgrading
If upgrading from a different minor version, be sure to read the upgrading documentation.
Changelog
Bug fixes
65378e6: fix(UI): show RollingSync step clearly when labels match no step (cherry-pick #26877 for 3.2) (#26883) (@argo-cd-cherry-pick-bot[bot])1515e91: fix: controller incorrectly detecting diff during app normalization (cherry-pick #27002 for 3.2) (#27012) (@argo-cd-cherry-pick-bot[bot])5fca1ce: fix: mitigation of grpc-go CVE-2026-33186 for release-3.2 (#26983) (@dudinea)Other work
e7d33de: chore: use base ref for cherry-pick prs (cherry-pick #26551 for 3.2) (#26554) (@argo-cd-cherry-pick-bot[bot])Full Changelog: argoproj/argo-cd@v3.2.7...v3.2.8
v3.2.7Compare Source
Quick Start
Non-HA:
HA:
Release Signatures and Provenance
All Argo CD container images are signed by cosign. A Provenance is generated for container images and CLI binaries which meet the SLSA Level 3 specifications. See the documentation on how to verify.
Release Notes Blog Post
For a detailed breakdown of the key changes and improvements in this release, check out the official blog post
Upgrading
If upgrading from a different minor version, be sure to read the upgrading documentation.
Changelog
Bug fixes
ca08f90: fix(server): OIDC config via secrets fails (#18269) (cherry-pick #26214 for 3.2) (#26389) (@argo-cd-cherry-pick-bot[bot])10c3fd0: fix: Fix excessive ls-remote requests on monorepos with Auto Sync enabled apps (26277) (cherry-pick #26278 for 3.2) (#26502) (@dudinea)9c128e2: fix: compressedLayerExtracterStore+isCompressedLayer - allow tar.gzip suffixes (cherry-pick #26355 for 3.2) (#26375) (@argo-cd-cherry-pick-bot[bot])Dependency updates
75eddbd: chore(deps): update group golang to v1.25.6 (cherry-pick release-3.2) (#26291) (@nitishfy)Other work
1f03b27: ci: exclude testdata from sonar.exclusions (cherry-pick #26398 and #26371 for 3.2) (#26424) (@argo-cd-cherry-pick-bot[bot])Full Changelog: argoproj/argo-cd@v3.2.6...v3.2.7
v3.2.6Compare Source
Quick Start
Non-HA:
HA:
Release Signatures and Provenance
All Argo CD container images are signed by cosign. A Provenance is generated for container images and CLI binaries which meet the SLSA Level 3 specifications. See the documentation on how to verify.
Release Notes Blog Post
For a detailed breakdown of the key changes and improvements in this release, check out the official blog post
Upgrading
If upgrading from a different minor version, be sure to read the upgrading documentation.
Changelog
Bug fixes
20866f4: fix(hydrator): .gitattributes include deeply nested files (#25870) (cherry-pick #26011 for 3.2) (#26012) (@argo-cd-cherry-pick-bot[bot])508da9c: fix(hydrator): empty links for failed operation (#25025) (cherry-pick #26014 for 3.2) (#26016) (@argo-cd-cherry-pick-bot[bot])2ff406a: fix: cherry pick #25516 to release-3.2 (#26115) (@FourFifthsCode)e3b108b: fix: close response body on error paths to prevent connection leak (cherry-pick #25824 for 3.2) (#26006) (@argo-cd-cherry-pick-bot[bot])ad117b8: fix: invalid error message on health check failure (#26040) (cherry pick #26039 for 3.2) (#26070) (@dudinea)Dependency updates
76fc92f: chore(deps): update notifications-engine to fix GitHub PR comments nil panic (cherry-pick #26065 for 3.2) (#26074) (@soutar)Full Changelog: argoproj/argo-cd@v3.2.5...v3.2.6
v3.2.5Compare Source
Quick Start
Non-HA:
HA:
Release Signatures and Provenance
All Argo CD container images are signed by cosign. A Provenance is generated for container images and CLI binaries which meet the SLSA Level 3 specifications. See the documentation on how to verify.
Release Notes Blog Post
For a detailed breakdown of the key changes and improvements in this release, check out the official blog post
Upgrading
If upgrading from a different minor version, be sure to read the upgrading documentation.
Changelog
Features
fafbd44: feat: Cherry-pick to 3.2 update notifications engine to v0.5.1 0.202512230910268c0c96d(#25930) (@reggie-k)Bug fixes
d7d9674: fix(appset): do not trigger reconciliation on appsets not part of allowed namespaces when updating a cluster secret (cherry-pick #25622 for 3.2) (#25911) (@argo-cd-cherry-pick-bot[bot])e6f5403: fix: Only show please update resource specification message when spec… (cherry-pick #25066 for 3.2) (#25895) (@argo-cd-cherry-pick-bot[bot])Documentation
e9d03a6: docs: Run make codegen for notifications engine changes (#25958) (@reggie-k)b67eb40: docs: link to source hydrator (cherry-pick #25813 for 3.2) (#25814) (@argo-cd-cherry-pick-bot[bot])Dependency updates
8a0633b: chore(deps): bump go to 1.25.5 (cherry-pick) (#25805) (@nitishfy)Other work
b414696: chore(cherry-pick-3.2): bumpexprtov1.17.7(#25889) (@nitishfy)51c6375: ci: test against k8s 1.34.2 (cherry-pick #25856 for 3.2) (#25859) (@argo-cd-cherry-pick-bot[bot])Full Changelog: argoproj/argo-cd@v3.2.3...v3.2.5
v3.2.4Compare Source
Important notice about this release
This release is invalid, please use the v3.2.5 instead.
v3.2.3Compare Source
Quick Start
Non-HA:
HA:
Release Signatures and Provenance
All Argo CD container images are signed by cosign. A Provenance is generated for container images and CLI binaries which meet the SLSA Level 3 specifications. See the documentation on how to verify.
Release Notes Blog Post
For a detailed breakdown of the key changes and improvements in this release, check out the official blog post
Upgrading
If upgrading from a different minor version, be sure to read the upgrading documentation.
Changelog
Dependency updates
8f903c3: chore(deps): bump golang.org/x/crypto from 0.42.0 to 0.46.0 (#25791) (@anandf)Full Changelog: argoproj/argo-cd@v3.2.2...v3.2.3
v3.2.2Compare Source
Quick Start
Non-HA:
HA:
Release Signatures and Provenance
All Argo CD container images are signed by cosign. A Provenance is generated for container images and CLI binaries which meet the SLSA Level 3 specifications. See the documentation on how to verify.
Release Notes Blog Post
For a detailed breakdown of the key changes and improvements in this release, check out the official blog post
Upgrading
If upgrading from a different minor version, be sure to read the upgrading documentation.
Changelog
Bug fixes
122f4db: fix(hydrator): appset should preserve annotation when hydration is requested (cherry-pick #25644 for 3.2) (#25654) (@argo-cd-cherry-pick-bot[bot])33b5043: fix(oidc): check userinfo endpoint in AuthMiddleware (cherry-pick #23586 for 3.2) (#25415) (@mkilchhofer)784f62c: fix(server): update resourceVersion on Terminate retry (cherry-pick #25650 for 3.2) (#25718) (@argo-cd-cherry-pick-bot[bot])732b16f: fix: create read and write secret for same url (cherry-pick #25581 for 3.2) (#25589) (@argo-cd-cherry-pick-bot[bot])Docum