Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
@loomhq/record-sdk
Advanced tools
bb42d5cf15: The parameters required for setup()
have changed!
export interface StandardSDK {
mode: 'standard';
publicAppId: string;
environment?: Environment;
config?: SDKConfig;
}
export interface CustomSDK {
mode: 'custom';
jws: string;
environment?: Environment;
config?: SDKConfig;
}
export interface FirstPartyMode {
config?: SDKConfig;
environment?: Environment;
jws: string;
mode: 'first-party';
publicAppId: string;
siteId: string;
}
export type SetupArgs = StandardSDK | CustomSDK | FirstPartyMode;
setup
can infer whether to use "custom" or "standard" modes.
Introducing: createInstance
, a setup method that supports "First-party-mode" for the @loomhq/record-sdk
.
There are now three operating modes of the SDK:
For the sake of simplicity, the engineer needs to explicitly say which mode they want to use.
// Example
const publicAppId: '<my public key>';
const instance = await create({
mode: 'standard',
publicAppId,
});
"First Party" mode is for our integration with Atlassian. This is not relevant externally to the company, so won't be documented on our developer docs.
See an overview of the exchange:
sequenceDiagram
actor B as Browser
participant B2 as IFrame
participant A as Atlassian-lith
participant E as Loom API
participant D as Cache
B ->> A: I need a token for the SDK
A ->> E: proxy request to Loom API
note over E: Validate request from [Atlassian]
E ->> D: Record nonce
note over E: Verify customer is known
note over E: Create a JWS
E ->> A: Here is a JWS token
A ->> B: Here's your token
note over B: Configure the SDK
B ->> B2: Load
B2 ->> E: Please load the SDK background (Here's a JWS)
note over E: Validate the JWS
E->>+D: Validate the nonce
note over E: Mint the session
E ->> B2: Here's a peripheral session cookie
B2 ->> B: Store these partitioned cookies please
note over B: Cool, I can now do stuff with [Third party]
Q: Why is this happening? A: We're giving Atlassian a level of trust that we wouldn't give to a third-party
Explained: Atlassian will request a minted token from Loom's internal API for any Atlassian-mastered Loom account. To mitigate risk we're doing a handful of things. These two items are important:
You can think of "first-party" mode as an intermediary step before all accounts are Atlassian-mastered and we replace Loom auth with Atlassian identity.
142ef8c30e: Implement foundations for onboarding
6a7f688ad8: navigate to share page edit tab when users are logged in
75c95a7853: Add in product name and entry point name into the recording start event
cf9cde4bb3: Add types export to record-sdk package
7e223459ff: Add internal alpha banner for Hello domain
cf01845b27: bump Lens v11.9.0 to add small loader
3df205aeb9: Be explicit about the different modes the recorder can be in.
Changes:
setApiKey
actionsetJws
actionsetMode
actionThe recorder can be in one of four modes:
@loomhq/record-sdk@3.11 and bellow will continue to use setApiKey and setJws. When these actions are used, sdk-background will transform these actions to be as though setMode was used.
7e8de46708: add pre record menu analytics for the sdk
211ebf0d1d: Add in product identifier and entry point
ef1c6c934a: Add changeset
6adf796331: Bump Lens to v11.11.0 to add custom height modals
ad079d01c6: Fixes bug where SDK could not start recording when microphone is disabled
See our docs site for a detailed guide on how to use the sdk!
FAQs
The Loom Software Development Kit
The npm package @loomhq/record-sdk receives a total of 6,686 weekly downloads. As such, @loomhq/record-sdk popularity was classified as popular.
We found that @loomhq/record-sdk demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.