Using bidirectionality override characters to obscure code. [Research Saturday]
Guests Nicholas Boucher and Ross Anderson from the University of Cambridge join Dave Bittner to discuss their research, "Trojan Source: Invisible Vulnerabilities." The researchers present a new type of attack in which source code is maliciously encoded so that it appears different to a compiler and to the human eye. This attack exploits subtleties in text-encoding standards such as Unicode to produce source code whose tokens are logically encoded in a different order from the one in which they are displayed, leading to vulnerabilities that cannot be perceived directly by human code reviewers. ‘Trojan Source’ attacks, as they call them, pose an immediate threat both to first-party software and of supply-chain compromise across the industry. They present working examples of Trojan-Source attacks in C, C++, C#, JavaScript, Java, Rust, Go, and Python. They propose definitive compiler-level defenses, and describe other mitigating controls that can be deployed in editors, repositories, and build pipelines while compilers are upgraded to block this attack.
The project website and research can be found here:
Available Results
Generated results are saved to your library for reuse and search.
Choose Template
Pick the result you want. You can review provider and model before generating.
A concise first-pass summary for understanding the episode quickly.
A comprehensive, source-grounded extraction of the reusable knowledge in an episode.
Scientific findings, mechanisms, studies, hypotheses, and the limits of the evidence discussed.
A dedicated analysis of warnings, limitations, trade-offs, weak evidence, and uncertainty.
Memorable statements and important claims with attribution and source context.
Technologies, AI models, technical methods, capabilities, limitations, and adoption implications.
A concise first-pass summary for understanding the episode quickly.
A detailed readable summary organized by chapter or topic.
A navigable map of subjects, topic flow, and suggested chapters.
A comprehensive, source-grounded extraction of the reusable knowledge in an episode.
Reusable atomic knowledge units extracted from the episode.
A comprehensive extraction focused on health practices, protocols, claims, and safety caveats.
A comprehensive extraction focused on opportunities, strategy, markets, and company building.
Explicit actions, next steps, habits, recommendations, and things to avoid.
A dedicated inventory of concrete resources named in the episode.
A dedicated analysis of warnings, limitations, trade-offs, weak evidence, and uncertainty.
A concise first-pass summary for understanding the episode quickly.
A detailed readable summary organized by chapter or topic.
A navigable map of subjects, topic flow, and suggested chapters.
A comprehensive, source-grounded extraction of the reusable knowledge in an episode.
Reusable atomic knowledge units extracted from the episode.
A comprehensive extraction focused on health practices, protocols, claims, and safety caveats.
A comprehensive extraction focused on opportunities, strategy, markets, and company building.
Scientific findings, mechanisms, studies, hypotheses, and the limits of the evidence discussed.
Technologies, AI models, technical methods, capabilities, limitations, and adoption implications.
Investment theses, assets, catalysts, valuation reasoning, time horizons, and risks.
Chronologies, actors, causes, consequences, turning points, and competing historical interpretations.
Policies, proposals, stakeholders, arguments, implementation constraints, and predicted effects.
Career paths, skills, hiring signals, workplace decisions, transitions, and limitations of the advice.
Behavioral mechanisms, biases, motivation, habits, emotions, interventions, and evidence limitations.
Economic mechanisms, incentives, indicators, market structure, forecasts, and uncertainty.
Leadership principles, team systems, organizational design, culture, feedback, and failure modes.
Audience, positioning, messaging, acquisition, retention, experiments, metrics, and failed approaches.
Teaching methods, learning strategies, practice, feedback, assessment, and effectiveness evidence.
Theses, premises, arguments, objections, values, thought experiments, and unresolved questions.
Communication patterns, conflict, boundaries, expectations, repair methods, and contextual limitations.
Books, papers, authors, courses, and other learning resources mentioned in the episode.
Repeatable methods, frameworks, mental models, processes, and systems.
Explicit actions, next steps, habits, recommendations, and things to avoid.
Memorable statements and important claims with attribution and source context.
A dedicated inventory of concrete resources named in the episode.
A dedicated analysis of warnings, limitations, trade-offs, weak evidence, and uncertainty.