Home Cyber Security News Coursera API Vulnerability Could Affect Learners’ Experience

Coursera API Vulnerability Could Affect Learners’ Experience

by Abeerah Hashim
Coursera API vulnerability

Popular online learning platform Coursera addressed a serious API vulnerability affecting potential students. Exploiting this bug could allow an attacker to manipulate how users view and access the content by abusing users’ preferences.

Coursera API Vulnerability Discovered

Researchers from Checkmarx Security Research Team discovered a serious vulnerability affecting Coursera API. The vulnerability precisely existed in the feature revolving around the users’ preferences.

As elaborated in their report, the researchers observed that Coursera’s web app displayed recently viewed courses in the user interface.

To render this information, we spotted several GET API requests to the same endpoint: /api/userPreferences.v1/{USER_ID}~{PREFERENCE_TYPE}.

Noticing the obvious user ID, the researchers tested it for Broken Object Level Authorization (BOLA) vulnerability. In simple words, they could fetch users’ preferences via these requests by modifying user IDs. This authorization problem could let them access other users’ preferences.

After several successful requests to retrieve preferences of several user accounts controlled by us, we were able to enumerate ten different preference types ({PREFERENCE_TYPE}): ONBOARDING, INVITATION, PAYMENT, saveCreditCard, HONORS, S12N_UPGRADE, ADMIN_SELECTED_PARTNER, PROMOTION_LANDING_PAGE, GENERIC, RECENTLY_VIEWED_XDP.

Further, they stripped the original request of cookies and headers to discovered that even anonymous users could exploit this bug. Plus, changing the requests from GET to PUT could also let them modify preferences.

In the case of an adversary, this would allow accessing regular users’ preferences and modifying them maliciously, thus affecting the content appearing in the user interface.

The following video demonstrates PoC exploit.

Bug Fixed

Following this discovery, the researchers reported the bug to Coursera officials via their vulnerability disclosure program on HackerOne.

In fact, the researchers found some more API issues besides BOLA.

Through our research, we discovered multiple API issues, such as user/account enumeration via the reset password feature, lack of resources limiting on both a GraphQL and REST API, and a GraphQL misconfiguration. But specifically, the Broken Object Level Authorization (BOLA) issue we found perfectly fits Coursera’s access control concerns.

Eventually, the service confirmed patching the flaws in May 2021.

Let us know your thoughts in the comments.

You may also like

Latest Hacking News

Privacy Preference Center


The __cfduid cookie is used to identify individual clients behind a shared IP address and apply security settings on a per-client basis.

cookie_notice_accepted and gdpr[allowed_cookies] are used to identify the choices made from the user regarding cookie consent.

For example, if a visitor is in a coffee shop where there may be several infected machines, but the specific visitor's machine is trusted (for example, because they completed a challenge within your Challenge Passage period), the cookie allows Cloudflare to identify that client and not challenge them again. It does not correspond to any user ID in your web application, and does not store any personally identifiable information.

__cfduid, cookie_notice_accepted, gdpr[allowed_cookies]


DoubleClick by Google refers to the DoubleClick Digital Marketing platform which is a separate division within Google. This is Google’s most advanced advertising tools set, which includes five interconnected platform components.

DoubleClick Campaign Manager: the ad-serving platform, called an Ad Server, that delivers ads to your customers and measures all online advertising, even across screens and channels.

DoubleClick Bid Manager – the programmatic bidding platform for bidding on high-quality ad inventory from more than 47 ad marketplaces including Google Display Network.

DoubleClick Ad Exchange: the world’s largest ad marketplace for purchasing display, video, mobile, Search and even Facebook inventory.

DoubleClick Search: is more powerful than AdWords and used for purchasing search ads across Google, Yahoo, and Bing.

DoubleClick Creative Solutions: for designing, delivering and measuring rich media (video) ads, interactive and expandable ads.



The _ga is asssociated with Google Universal Analytics - which is a significant update to Google's more commonly used analytics service. This cookie is used to distinguish unique users by assigning a randomly generated number as a client identifier. It is included in each page request in a site and used to calculate visitor, session and campaign data for the sites analytics reports. By default it is set to expire after 2 years, although this is customisable by website owners.

The _gat global object is used to create and retrieve tracker objects, from which all other methods are invoked. Therefore the methods in this list should be run only off a tracker object created using the _gat global variable. All other methods should be called using the _gaq global object for asynchronous tracking.

_gid works as a user navigates between web pages, they can use the gtag.js tagging library to record information about the page the user has seen (for example, the page's URL) in Google Analytics. The gtag.js tagging library uses HTTP Cookies to "remember" the user's previous interactions with the web pages.

_ga, _gat, _gid