Posted
Mon 20 October 2025
Author
Quarkslab
Category
Life at Quarkslab
Tags
job,
internship,
ECU,
LLM,
reverse engineering,
BLE,
Bluetooth,
Android,
satellite,
fuzzing,
cryptography,
cryptanalysis,
Golang,
Linux kernel,
vulnresearch,
2025
The internship season is back at Quarkslab! Our internship positions cover a wide range of topics and expertise, and aim at tackling new challenges in various fields.
We also welcome people with wide but realistic creativity, so if you have an idea and want to join the team, don't hesitate to reach out to discuss it with our experts!
Our goal is to publish most of the results of our internships. Here are some examples of publications from previous internships:
Quarkslab's team is always pleased to welcome new talents who want to work on complex security research subjects. If you want to face new challenges and work in a dynamic environment where curiosity and teamwork are at the heart of our way to do R&D, please apply!
In particular, we would be very happy to welcome more applications from female candidates, and under-represented minorities. Quarkslab is dedicated to making the cybersecurity world more welcoming and inclusive for all, and that starts with our internships.
With that in mind, and because we know impostor syndrome is a big obstacle for women in particular -- we've been there -- don't hesitate to reach out to us at icandoit-AT-quarkslab-DOT-com to discuss your skills, and we will help you navigate our offers.
To apply for an internship position, you must be a student, able to efficiently communicate on technical matters in written and spoken English, and willing to present the results of your internship to a large group of curious Quarkslab colleagues. Beforehand, you need to prepare the following elements:
Package these elements and send them via email to internship-AT-quarkslab-DOT-com, with the subject field containing the internship name mentioned in the respective offer.
Do not forget that the key aspect of a good application is being curious and motivated, not meeting all requirements listed in the offers below should not prevent you from sending us your application, and we can discuss your skills. Keep in mind that internships are meant for learning. Let's go!
Each internship offer comes with a little assignment that should not require too much time to be completed. The result will show us not only the type of skills and knowledge you already possess, but also how ingenious you are and how well you can present your reasoning. It will serve as the basis for the interview you will have in the selection process. The assignment works both ways and is also intended to make sure that you like the topic as well as the technical aspects of the internship. If unsure about a specific aspect of a challenge, do not hesitate to drop us an email. We are open to discussion!
The first applications usually reach us a few days after publication, and we start reviewing them right away. Some internships are filled before the end of the year, while others remain open until March.
Did you notice the colored circles next to the title of the offers at the top of this blogpost? They reflect the state of internships:
Training and helping people grow in the security industry is part of the company's DNA. That is why we provide in-depth blogposts, tools, trainings, weekly internal conferences (called Fridaycon, guess when they are), we teach in universities and schools and write articles in tech magazines. Sharing is caring, but sharing is also learning. We provide the environment for that and the rest relies on you.
Intern package in France:
A survey of privacy-related data and Personally Identifiable Information stored in automotive Electronic Control Units and how to protect them.
Modern automotive embedded a large amount of Electronic Control Unit (ECU) to assist the driver and enhance his driving experience. Some of those ECU collect data that could be considered as Personally Identifiable Information (PII) or that could affect privacy.
The aim of this internship is to study a set of ECUs to evaluate what kind of PII or privacy related data are stored, how they are protected against the extraction from a malicious actor.
During this internship, you'll assess how Personally Identifiable Information (PII) and privacy related data are stored and protected in an Electronic Control Unit (ECU) and if an attacker could be able to extract data using exposed interfaces (CAN, USB, Automotive Ethernet...).
To do so, you'll perform several tasks:
You'll be assisted by cybersecurity experts.
Find and read carefully a write-up with an analysis of an ECU storing data of interest (PII, cryptographic material, etc). Describe the various techniques used to gain access to the memory and recover those data. Discuss any relevant design or implementation flaws that led to this access and ways to secure it.
Explain the potential impact of extracting the date data to the user or the manufacturer. On the car model of the studied ECU, list other ECUs that could store sensitive information from a privacy point of view and the associated risks if those data are accessible to an attacker. Be as specific as possible.
6 months.
Paris, France.
Explore how a Large Language Model (LLM) can assist human reverse engineers in understanding compiled binaries (x86/ARM). The goal is to link assembly to semantics, automatically infer behavior, identify key routines, and recognize cryptographic primitives.
During the internship you will work a project with some specific goals and milestones.
6 months.
Paris, France.
Reverse engineer a propietary wireless protocol implementation FTW!
A vendor producing a lot of wireless-enabled System-on-Chips (SOCs) used in various IoT devices, developed its own wireless mesh network which they advertise as a proprietary "Bluetooth Mesh" protocol. The vendor provides a Bluetooth Low Energy gateway, that has already been reverse-engineered and documented, to access the custom mesh network but their own custom protocol, used to make devices communicate over the air, still remains a black box.
We want to open that box and look inside.
In this internship you will:
Contact us to receive an internship challenge to apply.
6 months.
Paris, France.
This internship project focuses on assessing and exploiting vulnerabilities in satellite communication systems, to improve their resilience against cyber threats. The intern will simulate various cyber-attacks on a selected satellite system, analyzing its communication interfaces, and attempting to identify and exploit weaknesses. The project will also involve designing and testing mitigation strategies that can defend satellite systems against these attacks. Over the six months, the intern will develop practical cybersecurity skills while working with satellite communication technology and conducting in-depth research.
Choose a Relevant CVE:
Select a CVE from 2022 or later that impacts satellite communication systems, satellite ground stations, or related components. For example:
CVE-2024-44910, CVE-2024-44911, CVE-2024-44912. There exists a detailed blogpost explaining the latter mentioned CVEs, if you choose either of them try to dig deeper.
Detailed Analysis:
Exploitation Path:
Proof of Concept (PoC):
Paris, France.
Develop an AI system capable of automatically detecting misuse of cryptography in source code. Typical errors include hardcoded keys, use ECB mode, weak random numbers, fixed initialization vectors, use of weak parameters.
Over the course of your 6 month internship you will work on building an AI-based source code analysis system capable of identifying the use of cryptography and detect common misuses.
You will:
Download the AEStoy challenge and follow the instructions in the README file.
6 months.
Paris, France.
A vendor released a SoCs family that support IEEE 802.15.4 and Bluetooth 5.4 PHYs, as well as a set of proprietary stacks that can be installed on these chips to support Bluetooth Low Energy or ZigBee protocols. This SoC is used in the first version of FlipperZero, but its wireless capabilities are not fully leveraged due to limits imposed by the vendors on the RF capabilities.
The SoC provides a secure environment to run proprietary protocol stacks, combined with a pre-provisioned encryption key and a public key to authenticate any stack application pushed into its secure area. The internal RF hardware peripherals are unknown but these stacks could be extracted through a vulnerability found on the SoC family.
This internship is a journey of exploration of a proprietary stack on a wireless SOC.
The goals of this internship are:
At the end of the internship you are expected to present your research project internally to peers, and to communicate it publicly in a blog post, paper or conference talk.
Contact us to receive an internship challenge to apply.
6 months.
Paris, France.
Binary Fuzzing on a mobile platform
Experiment with fuzzers and develop what's necessary to target binary programs and libraries on Android or iOS.
Over the course of your 6 month internship you will work on experimenting and building binary fuzzers capable of targeting native libraries on Android or binary components on iOS. Especially, a focus will be given on using QBDI, Quarkslab's instrumentation framework.
The goal will be to develop fuzzers, or fine-tune existing ones, to enable targetting of native libraries in fuzzing campaigns, then to test your fuzzer against real targets and find vulnerabilities.
At the end of the internship you will deliver:
Download the challenge app and follow the instructions in the README file.
6 months.
Paris, France.
Go (Golang) powers the modern cloud. From Kubernetes and Docker to Containerd and gVisor, most of today’s cloud-native technologies are built in Go.
Yet, despite being open-source, Go programs are notoriously hard to analyze or extend dynamically. You usually have to recompile them to modify behavior or collect runtime insights.
But what if you could observe and extend Go binaries while they're running, without touching their source code?
This internship focuses on gTrace, an internal research project that brings dynamic binary instrumentation to Go. Think of it as a way to inject observability, debugging, and new behaviors into Go programs at runtime, similar to what eBPF does for the kernel, and Frida at the user-space level.
Currently, gTrace exists as a working prototype developed over several years of internal R&D. Your mission is to help transform it into a robust, open-source-ready tool for the wider community.
You'll contribute to a project at the intersection of systems programming, Go runtime internals, and binary instrumentation.
gdb, delve).During this 6-month internship, you will:
By the end of the internship, you'll have deep hands-on experience with Go internals, dynamic analysis techniques, and open-source tooling. You'll also have the opportunity to write a blog post (or why not series of blog posts?) which will be published on our blog and shared with our peers. Upon successful completion, you'll have the chance to present the tool at a conference.
Solve this challenge: Extracting Asynchronous Preemption Safe Points from Compiled Go Binaries
Asynchronous preemption, introduced in Go 1.14, enhances the responsiveness and fairness of Go's scheduler. Prior to this feature, the Go runtime could only preempt (interrupt) a running goroutine at a limited set of safe points, typically during function calls, channel operations, or blocking system calls. As a result, CPU-bound or long-running loops without such calls could monopolize a thread, delaying garbage collection and starving other goroutines.
With asynchronous preemption, the Go runtime can now interrupt goroutines at more places during their execution, not just at function call boundaries. This mechanism relies on close cooperation between the compiler and the runtime:
The goal of this task is to develop a Go program that identifies and retrieves all asynchronous preemption safe points for all user-defined ("userland") functions from a compiled but not stripped Go binary.
The Go compiler embeds detailed runtime metadata in every compiled binary, including:
pcln tableExtract the pclntab structure from the binary and identify relevant function metadata:
_func entries (per-function metadata)pclntab headers and offsetsReference Material
src/internal/abi/symtab.gosrc/runtime/symtab.gosrc/runtime/runtime2.gosrc/cmd/link/internal/ld/pcln.goUse PCDATA channel information to determine preemption-safe locations within each function:
$-1 (_PCDATA_UnsafePointSafe) indicates a safe preemption point.$-2 (_PCDATA_UnsafePointUnsafe) indicates an unsafe region.Reference Material
Exclude Go runtime and standard library symbols to focus only on user-defined functions. This filtering can be performed before or after parsing safe points.
Produce a well-defined output format (e.g., JSON) that includes:
A Go-based tool that:
Parses a compiled Go binary.
Extracts and reports asynchronous preemption safe points for each userland function.
Documentation describing:
The process of parsing the pclntab structure.
PCDATA entries and identify safe points.6 months.
Paris, France.
Over the past years exploitation of kernel vulnerabilities has become increasingly difficult and convoluted, demanding in-depth knowledge of kernel data structures, subsystems and mitigation mechanisms.
Kernel exploitation is an art as well as a craft, and keeping up to date on the latest developments provides a great learning opportunity.
This internship is about writing exploits for Linux kernel vulnerabilities.
This internship has two primary objectives:
Development of a knowledge base on exploitation techniques and the Linux/Android kernel, documenting:
At the end of the internship you will present your project internally to your peers, and do a public communication (blog post, paper or conference talk) about it.
Contact us to receive an internship challenge to apply.
6 months.
Paris, France.
If you would like to learn more about our security audits and explore how we can help you, get in touch with us!