VYPR
Moderate severityNVD Advisory· Published May 24, 2022· Updated Apr 23, 2025

Limited Authentication Bypass for Media Files in Opencast

CVE-2022-29237

Description

Opencast is a free and open source solution for automated video capture and distribution at scale. Prior to Opencast 10.14 and 11.7, users could pass along URLs for files belonging to organizations other than the user's own, which Opencast would then import into the current organization, bypassing organizational barriers. Attackers must have full access to Opencast's ingest REST interface, and also know internal links to resources in another organization of the same Opencast cluster. Users who do not run a multi-tenant cluster are not affected by this issue. This issue is fixed in Opencast 10.14 and 11.7.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
org.opencastproject:opencast-ingest-service-implMaven
< 10.1410.14
org.opencastproject:opencast-ingest-service-implMaven
>= 11.0, < 11.711.7

Affected products

1

Patches

1
8d5ec1614eed

Merge pull request from GHSA-qm6v-cg9v-53j3

https://github.com/opencast/opencastLars KiesowMay 18, 2022via ghsa
1 file changed · +1 12
  • modules/ingest-service-impl/src/main/java/org/opencastproject/ingest/impl/IngestServiceImpl.java+1 12 modified
    @@ -129,15 +129,13 @@
     import java.util.Dictionary;
     import java.util.HashMap;
     import java.util.HashSet;
    -import java.util.LinkedList;
     import java.util.List;
     import java.util.Map;
     import java.util.Map.Entry;
     import java.util.Objects;
     import java.util.Set;
     import java.util.UUID;
     import java.util.concurrent.TimeUnit;
    -import java.util.stream.Collectors;
     
     import javax.management.ObjectInstance;
     
    @@ -1568,16 +1566,7 @@ protected URI addContentToRepo(MediaPackage mp, String elementId, URI uri) throw
         try {
           if (uri.toString().startsWith("http")) {
             HttpGet get = new HttpGet(uri);
    -        List<String> clusterUrls = new LinkedList<>();
    -        try {
    -          // Note that we are not checking ports here.
    -          clusterUrls = organizationDirectoryService.getOrganization(uri.toURL()).getServers()
    -                          .keySet()
    -                          .stream()
    -                          .collect(Collectors.toUnmodifiableList());
    -        } catch (NotFoundException e) {
    -          logger.warn("Unable to determine cluster members, will not be able to authenticate any downloads from them", e);
    -        }
    +        var clusterUrls = securityService.getOrganization().getServers().keySet();
     
             if (uri.toString().matches(downloadSource)) {
               //NB: We're creating a new client here with *different* auth than the system auth creds
    

Vulnerability mechanics

Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

4

News mentions

0

No linked articles in our index yet.