Bird
Raised Fist0
Jenkinsdevops~5 mins

CSRF protection in Jenkins - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does CSRF stand for in Jenkins security?
CSRF stands for Cross-Site Request Forgery. It is a type of attack where unauthorized commands are transmitted from a user that the web application trusts.
Click to reveal answer
beginner
How does Jenkins protect against CSRF attacks by default?
Jenkins uses a CSRF protection mechanism called a 'crumb'. It generates a unique token (crumb) for each user session that must be included in POST requests to verify the request is legitimate.
Click to reveal answer
intermediate
What is a Jenkins crumb in the context of CSRF protection?
A Jenkins crumb is a unique token generated per user session. It must be sent with POST requests to Jenkins to prove the request is from a trusted source and not a CSRF attack.
Click to reveal answer
intermediate
How can you disable CSRF protection in Jenkins, and why is it not recommended?
You can disable CSRF protection in Jenkins by unchecking 'Prevent Cross Site Request Forgery exploits' in the Configure Global Security settings. It is not recommended because it exposes Jenkins to CSRF attacks, risking unauthorized actions.
Click to reveal answer
advanced
How do Jenkins API clients handle CSRF protection when making POST requests?
Jenkins API clients must first request a crumb from the Jenkins server and include it in the header of POST requests. This crumb proves the request is legitimate and prevents CSRF attacks.
Click to reveal answer
What is the purpose of the Jenkins crumb in CSRF protection?
ATo verify that POST requests come from a trusted user session
BTo encrypt Jenkins passwords
CTo speed up Jenkins builds
DTo store Jenkins job configurations
Where do you configure CSRF protection settings in Jenkins?
AManage Jenkins > Credentials
BManage Jenkins > System Information
CManage Jenkins > Plugin Manager
DManage Jenkins > Configure Global Security
What happens if you disable CSRF protection in Jenkins?
AJenkins automatically updates plugins
BJenkins becomes vulnerable to unauthorized commands from attackers
CJenkins disables all POST requests
DJenkins runs faster
How do Jenkins API clients obtain the crumb token?
ABy reading the Jenkins log files
BBy logging into Jenkins UI
CBy sending a GET request to /crumbIssuer/api/json
DBy installing a Jenkins plugin
Which HTTP method requires the Jenkins crumb token to prevent CSRF?
APOST
BGET
CHEAD
DOPTIONS
Explain what CSRF protection is in Jenkins and how the crumb mechanism works.
Think about how Jenkins ensures requests come from trusted users.
You got /3 concepts.
    Describe the risks of disabling CSRF protection in Jenkins and when you might need to configure it.
    Consider what happens if attackers can send unauthorized commands.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of CSRF protection in Jenkins?
      easy
      A. To backup Jenkins configuration automatically
      B. To speed up Jenkins build times
      C. To encrypt Jenkins user passwords
      D. To prevent unauthorized web requests from other sites

      Solution

      1. Step 1: Understand CSRF meaning

        CSRF stands for Cross Site Request Forgery, which means unauthorized commands sent from a user that the web app trusts.
      2. Step 2: Identify Jenkins CSRF protection role

        Jenkins uses CSRF protection to stop these unauthorized web requests from other sites.
      3. Final Answer:

        To prevent unauthorized web requests from other sites -> Option D
      4. Quick Check:

        CSRF protection = prevent unauthorized requests [OK]
      Hint: CSRF stops fake requests from other websites [OK]
      Common Mistakes:
      • Confusing CSRF with password encryption
      • Thinking CSRF speeds up builds
      • Assuming CSRF backs up Jenkins data
      2. Which Jenkins setting enables CSRF protection?
      easy
      A. Enable 'Prevent Cross Site Request Forgery exploits'
      B. Disable 'Prevent Cross Site Request Forgery exploits'
      C. Enable 'Allow anonymous read access'
      D. Disable 'Enable security'

      Solution

      1. Step 1: Locate CSRF protection setting

        In Jenkins global security settings, there is an option named 'Prevent Cross Site Request Forgery exploits'.
      2. Step 2: Choose correct action to enable protection

        To enable CSRF protection, you must turn ON (enable) this setting.
      3. Final Answer:

        Enable 'Prevent Cross Site Request Forgery exploits' -> Option A
      4. Quick Check:

        Enable CSRF protection = turn on prevent exploits [OK]
      Hint: Turn ON 'Prevent Cross Site Request Forgery exploits' [OK]
      Common Mistakes:
      • Disabling the CSRF protection setting
      • Confusing with anonymous access settings
      • Disabling overall security disables CSRF too
      3. Given this Jenkins API call snippet:
      curl -X POST http://jenkins.example.com/job/test/build \
        --header "Jenkins-Crumb: abc123" \
        --user user:token

      What is the purpose of the Jenkins-Crumb header?
      medium
      A. It passes the CSRF protection token
      B. It specifies the build job name
      C. It authenticates the user credentials
      D. It sets the API version

      Solution

      1. Step 1: Understand Jenkins-Crumb header role

        The Jenkins-Crumb header carries a token called a crumb, which Jenkins uses to verify requests are safe from CSRF attacks.
      2. Step 2: Identify purpose in API call

        In API calls, this crumb token must be included to pass CSRF protection checks.
      3. Final Answer:

        It passes the CSRF protection token -> Option A
      4. Quick Check:

        Jenkins-Crumb = CSRF token header [OK]
      Hint: Jenkins-Crumb header sends CSRF token in API calls [OK]
      Common Mistakes:
      • Thinking Jenkins-Crumb is user authentication
      • Confusing it with job name or API version
      • Omitting crumb causes CSRF errors
      4. You get a 403 Forbidden error when triggering a Jenkins job via API. You suspect CSRF protection is causing it. What is the most likely fix?
      medium
      A. Disable CSRF protection in Jenkins settings
      B. Add the Jenkins-Crumb token header to your API request
      C. Use HTTP GET instead of POST for the API call
      D. Increase Jenkins build timeout

      Solution

      1. Step 1: Identify cause of 403 error

        403 Forbidden often means Jenkins rejected the request due to missing or invalid CSRF token.
      2. Step 2: Apply correct fix for CSRF error

        Adding the Jenkins-Crumb token header to the API request satisfies CSRF protection and avoids 403 errors.
      3. Final Answer:

        Add the Jenkins-Crumb token header to your API request -> Option B
      4. Quick Check:

        403 + CSRF = add crumb header [OK]
      Hint: Add crumb header to fix 403 CSRF errors [OK]
      Common Mistakes:
      • Disabling CSRF protection (unsafe)
      • Using GET instead of POST incorrectly
      • Changing unrelated settings like timeout
      5. You want to automate Jenkins job triggers from a script safely with CSRF protection enabled. Which approach is best?
      hard
      A. Disable CSRF protection temporarily during automation
      B. Send requests without authentication but with crumb header
      C. Use Jenkins API token and include the Jenkins-Crumb header in requests
      D. Use HTTP GET requests to avoid CSRF checks

      Solution

      1. Step 1: Understand safe automation with CSRF

        Disabling CSRF protection is unsafe. Automation must authenticate and pass CSRF tokens.
      2. Step 2: Combine authentication and CSRF token

        Using Jenkins API token for authentication plus including the Jenkins-Crumb header ensures safe, authorized requests.
      3. Final Answer:

        Use Jenkins API token and include the Jenkins-Crumb header in requests -> Option C
      4. Quick Check:

        Safe automation = auth + crumb header [OK]
      Hint: Authenticate and send crumb header for safe automation [OK]
      Common Mistakes:
      • Disabling CSRF protection (security risk)
      • Sending crumb without authentication
      • Using GET to bypass CSRF (not reliable)
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard