Senseitive data Related to Shopify Host -> https://shopify.zendesk.com/
None
S
Shopify
Submitted None
Actions:
Reported by
sam_exploit
Vulnerability Details
Technical details and impact analysis
###Description :
Github is truly awesome service but its unwise to put sensitive data in public repo as i was found a repo committed ***1 houre ago*** contain ***Senseitive data (Credentials && ZRT_API_KEY && JWT_SECRET*** related to ***this Host -> https://shopify.zendesk.com/*** leaked publicly in github, and clearly this is not intended to be public.
###Explanation :
While searching in github repos for sub-domains realted to ***Zendesk***, I found this a ***Shopify*** Sub domains -> ***https://shopify.zendesk.com/***
https://github.com/█████/extension/manifest.json
```
{
"matches": ["https://shopify.zendesk.com/agent/tickets/*"],
"js": ["contentScript/contentScript.js"]
}
"options_page": "popup/options/options.html",
"host_permissions": [
"http://localhost:4000/*",
"http://127.0.0.1/*"
```
https://github.com/█████████/extension/background.js
```
// chrome.tabs.query({active: true, currentWindow: true}, function (tabs) {
// const tab = tabs[0];
// const url = new URL(tab.url);
// const domain = url.hostname;
// if (domain === 'shopify.zendesk.com') {
// chrome.action.enable();
// } else {
// chrome.action.disable();
// }
// });
/*
const checkDomain = () => {
chrome.tabs.query({active: true, currentWindow: true}, function (tabs) {
const activeTab = tabs[0];
const url = new URL(activeTab.url);
const domain = url.hostname;
if (domain === 'shopify.zendesk.com') {
chrome.action.enable();
} else {
chrome.action.disable();
}
async function fetchPostCall(type, path, bodyData, callback) {
const url = `http://localhost:4000/${path}`
fetch(url, {
method: type,
body: JSON.stringify(bodyData),
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json; charset=utf-8'
}
}).then(resp => resp.json())
.then(data => {
chrome.cookies.set({
url: 'http://localhost:4000/extension/login',
name: 'token',
value: data.token,
httpOnly: true
});
callback(data)
})
```
https://github.com/█████/extension/popup/public/js/controls.js
```
if (domain === 'shopify.zendesk.com') {
chrome.storage.local.set({
ticketInitiated: true,
isRunning: true,
isNotified: false
});
const url = `http://localhost:4000/ticket`;
fetch(url, {
method: 'POST',
body: JSON.stringify(bodyData),
headers: {
Accept: 'application/json',
'Content-Type': 'application/json; charset=utf-8'
}
})
```
as you see in the Repo above the user mentined for ***localhost site and Token*** for connection, ***But digging more in the user repo i found a Senseitive data (Credentials && ZRT_API_KEY && JWT_SECRET***
https://github.com/██████████
```
PORT=4000
NODE_ENV=DEVELOPMENT
DB_LOCAL_URI=mongodb://127.0.0.1:27017/TicketTracker
SENDGRID_API_KEY=███████
SENDGRID_FROM_EMAIL=████████
WELCOME_USER_TEMPLATE=███████
RESET_PASSWORD_TEMPLATE=█████
BCRYPT_SALT=10
CRYPTO_SECRET=███
JWT_SECRET=████
JWT_EXPIRE_TIME=30d
COOKIE_SECRET=██████
COOKIE_EXPIRE_TIME=30
ZRT_API_KEY=█████████
```
## Impact
Such information is intended to private not public, it's highly recommended to check and revoke this repo after your assessment.
Report Details
Additional information and metadata
State
Closed
Substate
Resolved
Bounty
$500.00
Submitted
Weakness
Cleartext Storage of Sensitive Information