Holiday 7x7 Wargame 2024

Happy Holidays Folks,

This year our 7x7 Programming Game is coming back as the Holiday Wargame!

As our highlight event of the year, all the exciting new stuff can be found here. So be sure to go and give it a try to see fresh challenges.

The first batch of challenges has been released, with the 2nd batch coming in around early 2024.

Oh, and lest we forget. There will be prizes!, as mentioned on the dedicated event page as well as a :point_right: Discord channel:

6 month of free Pro subscription for the Winner and a unique badge.

3 month of free Pro subscription for the first runner up.

1 month of free Pro subscription for the second runner up.

6 month of free Pro subscription for best challenge contribution and a unique badge.

All participants get a badge for taking part in the contest.

Furthermore, we are making the Game Unrestricted for a Limited Time. This means all pro features such as access to the Cloud Development Environment (CDE), Premium Hints and Source Code Access for the Battle Game will all be available for free for the Holiday Wargame. Go and try it now!

Happy Patching!

1 Like

2nd challenge: Privilege escalation and weaknesses in change password functionates.

OWASP: A01:2021, A04:2021, A07:2021
CWE: 266, 639
Likelihood: Medium
Impact: High
Severity: High

Password resets are a fundamental feature that allow users to securely update their credentials. However, if the reset process does not adhere to secure design principles, adversaries can exploit weaknesses to compromise user accounts or privilege escalation - whether by gaining unauthorized access to another user’s account (horizontal escalation) or by elevating their own permissions (vertical escalation).

In this secure coding challenge, we will examine the vulnerabilities in an improperly implemented password reset mechanism and learn best practices to build a secure reset password .

:point_right: Privilege Esclation.py

1 Like

3rd challenge: a new type of vulnerability called “Class Pollution”

:point_right: Class Pollution.py

OWASP: A08:2021
CWE: 915
Likelihood: Low
Impact: High
Severity: High

Class pollution is a new type of vulnerability that is similar to JavaScript Prototype Pollution. it that can be exploited to create or modify properties of an existing object.

Class Pollution arises when an attacker can modify an object’s __class__ attribute, which refers to the class that the object is an instance of. This manipulation can affect the class itself and all its instances.

Exploiting Class Pollution often involves unsafe merge functions that recursively process untrusted user input to set object attributes. Attackers can craft input that targets specific attributes, such as __qualname__, to modify class properties. Moreover, by chaining __base__ attributes, attackers can pollute parent classes in the inheritance hierarchy

Depending on the app, this vulnerability can lead to remote code execution, denial of service, and information leakage.

To learn more about Class pollution, watch the following video and read this blog post.

In this secure coding challenge, we will learn how to exploit this vulnerability in the provided app. Once you understand how the vulnerability is triggered, your goal is to address the vulnerability.

1 Like

4th challenge: an AI battle challenge that most of you are likely familiar with.

:point_right: Prompt.ml.hth

OWASP: A03:2021, LLM01:2025
CWE: 94
Likelihood: Medium
Impact: Medium
Severity: High

AI applications have the potential to expose confidential information or intellectual assets. The root cause is in the combination of AI instructions and data, particularly user input. When a malicious user input is perceived as an instruction, the AI might unintentionally reveal sensitive data. This tactic is referred to as prompt injection. In this challenge, we aim to harden the AI app to prevent a specific type of prompt injection attack.

In this challenge, you are given an AI chatbot. Your chatbot has a secret that should always remain a secret! Your objective is to secure your chatbot to protect its secret while attacking other players’ chatbots and discovering theirs. Chatbot is built using OpenAI API and uses GPT3.5.

This is the king of the hill competition. The earlier you defend your app or hack another player’s, the higher your ranking will be. If a player hacks your app, you will lose the score and kicked out of the battle page. You may try again.

2 Likes

5th challenge: a Go challenge
:point_right: Weekend League.go

Shout out to @spuntar / shurep for developing this challenge by using Play SDK :heart:

Popular football game FIFA has a competitive mode named Weekend League where the best players are competing for in-game prizes and also for entry to live competitive events. Matchmaking is based on ELO (estimated level of opponent) where opponents with ±5 levels of win/loss difference are matched.

Objective

Some players have found a way to game the system and get matched with players with lower skill level that they should be to increase their chances for a victory and better rewards. Can you find and fix security vulnerability?

1 Like

For anyone who has cloned this challenge, there are issues with the supplied security test (also replicated to server-side tests).

Hmm that is strange.

We’ll investigate it. Community contributions can end up with snags.

1 Like

Well, there doesnt seem to be a problem with the challenge.
The test is fine and the server side tests are running fine as well.

I can understand frustrations, since the patch was rather interesting.
Security tests are given in hints, and Ill include the patched solution as well for those curious how it works (bearing in mind that will negate all points)

1 Like

Hmmm, interesting :thinking:

Well back to the drawing board for me, apologies for any confusion I have created.

1 Like

6th challenge
:point_right: Polluted access.ts

Enterprise systems often need to support multiple authentication mechanisms to cater to different applications. In many cases, some of these mechanisms are retained to support legacy systems. The more complex the app is, the more likely to have a security vulnerabilities.

In this secure coding challenge, we simulate a real-world example of an authentication discrepancy. We will learn how these subtle issues can arise and, more importantly, how to remediate them effectively.

OWASP: A01:2021, A04:2021, A07:2021
CWE: 266, 639
Likelihood: Medium
Impact: High
Severity: High

Shout out to @joshua.cunninghame / joshua.cunninghame for developing this challenge by using Play SDK :heart:

1 Like

7th Challenge: Insecure Output Handling in AI
:point_right: Insecure Output Handling.ml

OWASP: LLM05:2025
CWE: 838
Likelihood: Medium
Impact: High
Severity: High

For our final challenge, we explore an OWASP Top 10 AI secure coding challenge, i.e. LLM05:2025 Improper Output Handling.

Improper or Insecure Output Handling refers to inadequate validation, sanitisation, and management of outputs generated by large language models (LLM) before they are passed on to other components and systems. Because the content generated by these models can be influenced by prompt inputs, this behaviour is akin to giving users indirect access to additional functionality.
In this challenge, we will learn how to address insecure output handling in LLM apps.

:bell: We also have a bonus challenge contributed by @Matt . This Python secure coding challenge contains two real-world security vulnerabilities. I let you explore it on your own :wink: .

Shout out to @Matt / M4773L for developing this challenge by using Play SDK :heart:

:point_right: Santa Message.py

:gift: Last but not least, this year we are giving away prizes for the best contributed challenge. Use SecDim SDK to build AppSec challenges. Submit your challenges no later than 31st January 2025 UTC.

1 Like

Thanks to all participated in SecDim Holiday 7x7 2024. I hope you have learnt something new and enjoyed the challenge-driven learning.

We are in process of review the submission and we will soon announce the winners :tada:

Meanwhile, please share :point_right: your feedback your insights helps us to make the contest a better experience next time.

1 Like