# CVE-2017-1000106: Improper Authentication in Jenkins Blue Ocean Plugin

> Users with read access can exploit missing authentication checks to read files and create commits using the folder creator's GitHub credentials.

- **Severity:** High 8.5 (`CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:H/A:N`)
- **Exploited in the wild:** Not known
- **Login needed:** Any signed-in user
- **Attackable:** Over the internet
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 4 Oct 2017
- **Updated:** 16 Sep 2024
- **Also known as:** GHSA-qgjq-m78x-4gm8

## What is CVE-2017-1000106?

CVE-2017-1000106 is a high-severity missing authorization vulnerability in n/a, published on 4 Oct 2017. Any signed-in user can exploit it over the network, with no action from the victim.

### Official description

Blue Ocean allows the creation of GitHub organization folders that are set up to scan a GitHub organization for repositories and branches containing a Jenkinsfile, and create corresponding pipelines in Jenkins. Its SCM content REST API supports the pipeline creation and editing feature in Blue Ocean. The SCM content REST API did not check the current user's authentication or credentials. If the GitHub organization folder was created via Blue Ocean, it retained a reference to its creator's GitHub credentials. This allowed users with read access to the GitHub organization folder to create arbitrary commits in the repositories inside the GitHub organization corresponding to the GitHub organization folder with the GitHub credentials of the creator of the organization folder. Additionally, users with read access to the GitHub organization folder could read arbitrary file contents from the repositories inside the GitHub organization corresponding to the GitHub organization folder if the branch contained a Jenkinsfile (which could be created using the other part of this vulnerability), and they could provide the organization folder name, repository name, branch name, and file name.

Weakness: CWE-287 (Improper Authentication)

## Which versions are affected by CVE-2017-1000106?

2 open source packages ship an affected version, including io.jenkins.blueocean:blueocean. It affects 1 product.


| Package | Ecosystem | Affected | Fixed in |
| --- | --- | --- | --- |
| `io.jenkins.blueocean:blueocean` | Maven | All versions | 1.2.0 |
| `io.jenkins.blueocean:blueocean` | Maven | All versions | 1.2.0 |

Products: Jenkins Blue Ocean.

## How do I fix CVE-2017-1000106?

Upgrade io.jenkins.blueocean:blueocean to 1.2.0 or later.

## Is CVE-2017-1000106 being exploited?

There is no known exploitation of CVE-2017-1000106 in the wild and no public exploit code.

## Other vulnerabilities in n/a

- [CVE-2023-40341](https://insights.sbomify.com/CVE-2023-40341/): Jenkins Blue Ocean Plugin cross-site request forgery vulnerability (high 8.8)
- [CVE-2022-30952](https://insights.sbomify.com/CVE-2022-30952/): Insufficiently Protected Credentials in Jenkins Pipeline SCM API for Blue Ocean Plugin (medium 6.5)
- [CVE-2022-30953](https://insights.sbomify.com/CVE-2022-30953/): Cross Site Request Forgery in Jenkins Blue Ocean Plugin (medium 6.5)
- [CVE-2022-30954](https://insights.sbomify.com/CVE-2022-30954/): Missing permission check in Jenkins Blue Ocean Plugin (medium 6.5)
- [CVE-2020-2254](https://insights.sbomify.com/CVE-2020-2254/): Path traversal vulnerability in Blue Ocean Plugin (medium 6.5)

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2017-1000106 and fix it if it is affected.

What it is: CVE-2017-1000106 is a high-severity missing authorization vulnerability in n/a, published on 4 Oct 2017. Any signed-in user can exploit it over the network, with no action from the victim.
Exploitation: There is no known exploitation of CVE-2017-1000106 in the wild and no public exploit code.

Affected packages and fixed versions:
- io.jenkins.blueocean:blueocean (Maven): affected all versions; fixed in 1.2.0
- io.jenkins.blueocean:blueocean (Maven): affected all versions; fixed in 1.2.0

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2017-1000106/ (Markdown: https://insights.sbomify.com/CVE-2017-1000106/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2017-1000106
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2017-1000106
- OSV: https://osv.dev/vulnerability/CVE-2017-1000106

---
From sbomify Insights: https://insights.sbomify.com/CVE-2017-1000106/
Summaries are generated and may contain mistakes; the official description above is the record.
