Post Syndicated from Explosm.net original https://explosm.net/comics/fajitas
New Cyanide and Happiness Comic
Post Syndicated from Explosm.net original https://explosm.net/comics/fajitas
New Cyanide and Happiness Comic
Post Syndicated from Боян Юруков original https://yurukov.net/blog/2026/must-be-surreal/
Must be surreal to live history all over
repeating the same lies of self-defense,
superiority, destiny and final solution
watching passively as everyone –
yourself included – prays, votes, kills,
burns and rebuilds atop graves.
Must be heartbreaking to watch
your bloodline relive what you endured
now from the perpetrator’s desk
history forgotten, repeated, rebranded
uttering those exact excuses and hate
following through as orders are followed.
Must be difficult to face the tape rolling
once ashes and truth settle alike,
to explain once more, eighty years later,
to insist common folk didn’t know,
only sought safety and promised destiny,
to feel the shame once those lies crumble.
Must be painful for the witness and learned
to watch events unfold and reconstruct
what was once labeled as „never again“
knowing that in eighty more years
the bloodline of those who now slay
will emerge from the shame and lead yet again.
Must be terrifying to entertain the thought
that what remains of a charred people –
scattered across, but not at home –
will rise to hunt the monsters down
one by one, as decades past,
to end, to seek justice, to avenge.
Must be certain some labels will be named:
terror, and stench of decaying foe
or truth seekers and retribution
for a humanity failing yet again.
Must be up to the scribes or those
who will still utter „never again“
and still fail to know how or what,
yet dream of safety and promised destiny.
Post Syndicated from The Atlantic original https://www.youtube.com/shorts/tnMyShHXC1w
Post Syndicated from The Atlantic original https://www.youtube.com/watch?v=RfV5k0oZRfs
Post Syndicated from Oglaf! -- Comics. Often dirty. original https://www.oglaf.com/dexterity/
Post Syndicated from Cliff Robinson original https://www.servethehome.com/d-matrix-joins-the-nvidia-nvlink-fusion-platform/
d-Matrix and NVIDIA announced that d-Matrix will use NVLink Fusion to scale up and out with its next-gen Raptor AI accelerators
The post d-Matrix Joins the NVIDIA NVLink Fusion Platform appeared first on ServeTheHome.
Post Syndicated from The Atlantic original https://www.youtube.com/shorts/tusuQCiwZEs
Post Syndicated from BeardedTinker original https://www.youtube.com/watch?v=1rOieBDtUkY
Post Syndicated from The Atlantic original https://www.youtube.com/watch?v=OOGfqCtTqmw
Post Syndicated from Techmoan original https://www.youtube.com/watch?v=L6-wGWsustk
Post Syndicated from Боряна Телбис original https://www.toest.bg/sedmitsata-7-12-septemvri/

Ако през последните дни сте следили българските медии, вероятно знаете кой е в инициативния комитет на Илияна Йотова, кой е в този на Андрей Гюров, кой до кого е седнал, кой кого подкрепя и какво евентуално означава присъствието на еди-кого си в еди-кой си списък.
Вероятно обаче сте попаднали и на друга новина. Джейкъб Коксън, изследовател, работил в OpenAI и Anthropic, напусна последната с предупреждението, че компаниите, разработващи най-мощните системи за изкуствен интелект, бягат към някаква финална линия, за която дори самите хора вътре в организациите не са сигурни до каква „победа“ ще доведе. След него Евън Хюбингър, който все още работи в Anthropic и ръководи екипа по Alignment Science, уточни публично собствената си оценка: над 10% вероятност изкуственият интелект да убие всички хора в рамките на следващото десетилетие.
Jacob is correct here—we really do earnestly believe AI could kill all humans! I personally think it is >10% within the next decade. I believe Anthropic is trying its best, but we do not yet have a plan to solve alignment for superintelligence and are not clearly on track to. https://t.co/QAIHiFP3QZ
— Evan Hubinger (@EvanHub) September 9, 2026
Десет процента.
Ако става дума за вероятност да вали в събота, не е драма. Заприличва на такава, ако говорим за края на човечеството. Но какво са няколко процента между приятели…
Докато тук гледаме на инициативни комитети като на кафе и се опитваме да разберем какво ни казват за бъдещето, хората, които строят въпросното бъдеще в буквалния смисъл, спорят дали има едно към десет шанс в него да няма хора. Живеем в края на дните, драги читатели. Не непременно в библейския смисъл, макар че напоследък човек не бива да отхвърля с лека ръка никакви варианти. Но почти сигурно живеем в края на някакви дни. Аз собствено живея в края на дните преди началото на учебната година, в която имам още един първокласник и отново ще ми се наложи да чуя приветствие от Янка Такева на 15 септември.
След едномесечната си лятна ваканция, която правим не толкова защото страшно много държим да си почиваме през август, а защото „Тоест“ е медия, издържана от даренията на читателите си, и август е месецът, в който почти никой не иска да чете нищо. Затова използваме случая да не произвеждаме медия, която няма да бъде прочетена, и така да спестим малко пари.
Толкова е просто. Или толкова е тъжно (ако ви е важна тъгата като мотиватор).
Но сме тук. И понеже светът може да свърши, или по-лошото – да продължи все така, започваме новия сезон постарому: с истории за хора.
Йоанна Елми тръгна из България и на първо време стигна до восъчния Левски в един музей в Ловеч. Това е първият текст от новата ѝ рубрика „Фрагменти от България“, в която тя ще пътува, ще гледа, слуша и снима, а през малките неща ще се опитва да разбере големите. В случая въпросът е как разказваме собственото си минало и какво остава от него, когато го затворим в музейна витрина.
Восъчният Левски е малко смешен и после става по-скоро плашещ. Защото е метафора за една държава, която от десетилетия не е измислила нов начин да говори за себе си, а пък народът на тая държава (иначе много древен и велик) продължава да живее сред полуфабрикатни разкази кой е, откъде идва и с какво се гордее.
Лошото е, че тука вакуум не се търпи и когато не умеем да разказваме миналото си, някой друг с удоволствие ще го разкаже вместо нас.
В Германия това в момента прави „Алтернатива за Германия“ (АзГ). В новия си текст Светла Енчева разказва за убедителната победа на крайнодясната партия в Саксония-Анхалт през един 40-годишен поп хит – Forever Young на Alphaville, превърнал се по странно стечение на обстоятелствата в песен на съпротивата срещу АзГ. Хит от времето на Студената война, роден от страха от атомната бомба и бъдещето, се връща четири десетилетия по-късно в една Германия, която отново спори колко минало има в настоящето си. Миналото, както завършва Светла, също може да бъде forever young.
Разбира се, няма как да минем без кампанията за президентските избори. Имаме два текста по темата в съвсем различни посоки.
Емилия Милчева се занимава с въпроса какъв национален хоризонт очакваме от президента. В статията си тя разказва накратко за петимата пряко избирани български президенти през различните представи за тази институция – от коректив и гарант за геополитическата посока на държавата до посредник, архитект на промяна и център на политическа власт.
Дарина Сарелска пък коментира кандидатурата на Кирил Вълчев, генерален директор на БТА, за вицепрезидент на Илияна Йотова, отваряйки изключително важния разговор за журналистите, които преминават в политиката. Не защото журналистът няма право на политически убеждения, а защото доверието е капиталът на тази професия. И когато днес го трупаш като човек, който задава въпроси на властта, а утре го осребряваш като кандидат на същата тази власт, сметката я плаща журналистиката.
И понеже думите все пак са основният инструмент, с който тази журналистика се прави, Павлина Върбанова отваря вратата към редакционната кухня на „Тоест“ и разказва за нашите вътрешни езикови правила. Защо в „Тоест“ понякога съзнателно се отклоняваме от официалната норма и как една редакция решава кое да пази, кое да променя и с кое да спори. В крайна сметка нищо не е вдялано в камък, освен, разбира се, нещата, които са вдялани в камък…
И накрая идват три истории, които Надежда Цекулова разказва в рубриката си „Да говорим с грижа“. Едната е за Елица – двегодишно дете с тежки увреждания, което живее извън дома си, защото системата може да му осигури медицинска грижа, но трудно успява да осигури едновременно и нея, и семейството му. Родителите ѝ, разбира се, мечтаят да си я приберат у дома.
Другата е за Диана и дъщеря ѝ Ида, прекарала пет месеца в кома в неонатологията. Майка ѝ я вижда редовно, но я прегръща за първи път едва след смъртта ѝ.
Третият глас е на детския анестезиолог и реаниматор д-р Христо Христов, който си позволява да говори извънпротоколно как родителите да останат родители и когато детето им е тежко болно, и когато лекарите вече не могат да го спасят.
Почнахме седмицата с разказване на истории и така я приключваме – с истории за хора.
Ако много ви липсват такива, четете „Тоест“, но вижте и платформата anyhumanever.com.
Идеята ѝ е проста и прекрасна. Натискате бутон и от повече от 100 милиарда души, живели някога на Земята, получавате разказ за един случаен човешки живот. Като тото-лото за човешки истории. Първо ви се пада година, после място на раждане, пол, условия, вероятности – колко е било вероятно този човек да преживее детството си, да има образование, да роди деца, да умре от болест, глад или насилие.
Историите не са биографични, а възможни животи, статистически сглобени на базата на научните знания за света ни до този момент.
И нас ни има в тези 100 милиарда човешки живота.
Много ни се иска да вярваме, че сме от различни племена. Чертаем граници в прахта, учредяваме партии и комитети, поддържаме кухи идеологии, за да си обясняваме кои сме ние и кои са другите – изобщо, голяма дейност кипи. В същото време едно дете лежи пет месеца в кувьоз, майка му иска просто да го прегърне и тази история всички я разбираме и преживяваме.
Съжалявам, че ще ви го съобщя в първия бюлетин на „Тоест“ за сезона, но в целия ужас и хаос, и радост от всичкото сме заедно.
Благодарим ви.
Post Syndicated from Bruce Schneier original https://www.schneier.com/blog/archives/2026/09/friday-squid-blogging-rotting-squid-on-a-beached-california-boat.html
Smells awful:
But an estimated 30 to 50 tons of dead squid remain inside the boat’s catch tank, where they have been decomposing for days. “That is nasty. I wouldn’t want to do that,” said commercial fisherman Dick Ogg of the Bodega Bay Fishermen’s Marketing Association.
Ogg said anyone familiar with the fishing industry understands what happens when a large catch sits for an extended period.
“If you think about what happens after four or five days, it’s a gooey mess,” he said.
The odor has become a defining feature of the operation, and the beach remains closed to the public while crews work on a removal plan.
According to salvage expert Ernie English of Parker Diving Service, the squid has deteriorated into a thick mass that will be difficult to remove.
“It’s like concrete,” English said when asked about its consistency.
As usual, you can also use this squid post to talk about the security stories in the news that I haven’t covered.
Post Syndicated from Crosstalk Solutions original https://www.youtube.com/watch?v=MaieGi5WsVQ
Post Syndicated from Bruce Schneier original https://www.schneier.com/blog/archives/2026/09/my-talk-at-def-con.html
Last month, I gave a talk at DEF CON on AI hacking: what happens when AIs become hackers. It’s a combination of the potentialities I raised in my 2022 book A Hacker’s Mind and the lessons we’re learning from current AI models engaging in hacking behavior. I’m really proud of the talk, and the fact that it gained over 100K views on YouTube in just a few days.
Also online is an interview with me in the AI Village.
Post Syndicated from Ryan Smith original https://www.servethehome.com/asus-pro-ws-w890e-sage-se-motherboard-review/
Today we are taking a look at ASUS’s premium motherboard for the new Xeon 600 workstation platform, the Pro WS W890E-SAGE SE. A showcase for the platform, the SAGE SE supports Xeon 600’s full capabilities, while looking to appeal to both businesses and enthusiasts alike
The post ASUS Pro WS W890E-SAGE SE Motherboard Review appeared first on ServeTheHome.
Post Syndicated from jzb original https://lwn.net/Articles/1093825/
All of the videos from the EuroPython 2026 conference, held
in Kraków from July 13 through July 19, are now
online along with a recap of
the event from conference organizers.
Post Syndicated from The Atlantic original https://www.youtube.com/watch?v=wSM6shmxOSM
Post Syndicated from corbet original https://lwn.net/Articles/1093398/
Kernel developers do a lot of kernel builds. Since the kernel is not a
small program, those builds can take a fair amount of time, even on a fast
machine. The kernel also has a complex build system; it is probably fair
to say that few developers truly understand it, and fewer still are willing
to try to improve it. Lorenzo Stoakes, armed with LLM-based assistance,
decided to give it a try, though, and has managed to reduce the time it
takes to build a kernel — and not by a small amount.
Post Syndicated from Hyunsoo Kim, Ph.D. original https://aws.amazon.com/blogs/architecture/from-zero-shot-forecast-to-purchase-order-with-amazon-bedrock-agentcore/
Authors: Hyunsoo Kim, Chloe Kwak
Learning level: 300 – Advanced Post type: Best Practices
Every inventory manager faces the same question each morning: How much should I order today? The answer depends on dozens of variables (sales history, upcoming promotions, pricing changes, day-of-week seasonality, supplier lead times) and the cost of getting it wrong is asymmetric. Over-order and you carry capital in slow-moving stock. Under-order and you lose revenue, damage customer trust, and scramble for emergency replenishment.
Classical time-series methods (ARIMA, Holt-Winters, seasonal decomposition) require per-SKU model fitting. A retailer with 10,000 SKUs must train, validate, and maintain 10,000 separate models. Each requires its own hyperparameter tuning, retraining schedule, and cold-start problem for new products. The operational burden scales linearly with catalog size, and the engineering team spends more time managing infrastructure than improving forecast quality.
Gradient boosting and deep learning approaches (LightGBM, DeepAR, Temporal Fusion Transformer) improve accuracy but compound the operational complexity: feature engineering pipelines, training jobs, model registries, A/B testing infrastructure. For many organizations, the time from “we want better forecasts” to “forecasts are running in production” often takes a full quarter or more.
Even with a reliable forecast, converting a demand signal into a purchase order requires applying business rules: safety stock buffers, minimum order quantities, budget constraints, promotional lift adjustments. These rules are typically encoded in spreadsheets or institutional knowledge, applied inconsistently across buyers, and nearly impossible to audit or explain at scale.
This post describes how to combine two complementary capabilities to address both problems simultaneously:
The result is an end-to-end inventory automation pipeline where adding a new product requires zero ML model training, adding a new business rule requires changing one tool, and each decision is auditable, observable, and recoverable from failure. In internal testing across 50 SKUs over a 4-week horizon, this architecture achieved a median weighted absolute percentage error (WAPE) of 12.3% (P50 forecast compared to actuals), reduced per-SKU onboarding time from 2–3 weeks of model training to under 5 minutes of CSV upload, and cut monthly inference cost from ~$1,091 (always-on GPU) to ~$15 (Serverless) — a 98% reduction. End-to-end pipeline latency averaged 8 seconds per SKU excluding cold start.
This section describes the end-to-end system architecture, explains why Chronos2 is well suited for inventory forecasting, and outlines the benefits of a multi-agent design over a monolithic approach.
The system is organized into three logical layers:

Data layer. Amazon Simple Storage Service (Amazon S3) serves as the single source of truth. A single CSV per product encodes both historical sales and future covariate values. Business rules (lead times, safety stock, warehouse capacity, minimum order quantities) live in a separate JSON config. Adding a new product requires only uploading these two files, with no changes to code.
Inference layer. Amazon SageMaker Serverless Inference hosts the Chronos2 endpoint for zero-shot time-series forecasting. This is the only external model inference call in the pipeline — the LLM reasoning runs through Amazon Bedrock within the orchestration layer.
Orchestration layer. Four LLM agents — Supervisor, Preprocessing, Forecasting, and Reporting — are built with the Strands Agents SDK and deployed on Amazon Bedrock AgentCore. Each agent uses Claude on Amazon Bedrock for reasoning and calls deterministic tools to execute the computational work.
Amazon Bedrock AgentCore is a fully managed platform to build, deploy, and optimize agents at scale, with any framework or model. The orchestration layer runs on AgentCore, which provides six sub-services: Runtime, Gateway, Policy, Memory, Observability, and Evaluations. This system uses each of the six, but each for a specific, single purpose. The architecture deep dive section maps each service to the production concern it addresses in this design — including why the Gateway surface is deliberately small (one tool out of eight).
Chronos2 is an encoder-only transformer that closely follows the T5 encoder design, pre-trained on a large and diverse corpus of real-world time series. The model generates multi-step probabilistic forecasts using in-context learning and a group attention mechanism — no fine-tuning on your data required.
Three properties make it the right choice for inventory forecasting at scale:
context_df and future_df dataframes to pipeline.predict_df(). Covariates transform the model from a univariate forecaster into a conditional one.Chronos2 is well-suited for this workload because it satisfies all three requirements simultaneously: zero-shot inference (no per-SKU training), explicit support for both past-only and future covariates via the predict_df() API, and a one-click deployment path to Amazon SageMaker Serverless Inference. This combination means that onboarding a new product requires only data — no pipeline changes, no model registry entries, no retraining schedule. The evaluator framework introduced in the architecture deep dive makes it straightforward to benchmark any alternative forecasting model on the same traces without rebuilding the pipeline.
A single LLM prompt that performs all reasoning steps — data loading, covariate selection, forecast interpretation, order calculation, validation, and result saving — would exceed practical context window limits for large catalogs, be impossible to unit test at the component level, and fail catastrophically when any single step encounters an error.
An agent-per-reasoning-responsibility architecture solves each of these problems directly. Critically, this architecture makes a firm distinction: LLM agents handle judgment. Deterministic tools handle computation. Bedrock inference happens in exactly four places: the four agents. The operations they coordinate (loading files, running the replenishment formula, generating charts, writing to S3) run as plain Python functions that the agents call as @tools. The agent determines when to call each tool and with what arguments: the tool itself contains no LLM inference. This separation keeps per-run LLM cost bounded and reasoning quality high by ensuring each agent’s context window carries only what it needs to reason about, not the raw byproducts of every tool call.
Four things need to be in place before deploying this architecture. Other components (the S3 bucket, IAM roles, folder layout, and the agent runtime package) are provisioned by the CDK stack and deploy scripts described in the following sections.
us-east-1).This section walks through the data format, agent definitions, coordinator logic, and deployment configuration.
The input format intentionally blurs the boundary between historical and forecast periods. A single CSV file covers both:
Rows where sales are null define the forecast horizon. Covariates are fully populated for both historical and future periods. This design makes the distinction between past and future a data concern, not a code concern — the Preprocessing Agent reads the same schema regardless of forecast horizon length. When the operations team knows a promotion is planned next week, they fill in the promotion column for those future rows and re-upload the file.
Product-level business rules live in a separate JSON config:
By treating business rules as data rather than code, adjusting a supplier’s lead time or safety stock threshold requires only a config update in S3 — no deployment.
The central design principle: use an LLM agent where the output depends on interpretation or context. Use a deterministic tool where the output is fully determined by the input.
The Supervisor is the entry point for every user request. Its responsibility is pure orchestration: parse the user’s intent in natural language, construct the execution plan, route work to the three specialist agents in sequence, and handle conditional branching based on their outputs.
When a user sends “Run the weekly replenishment forecast for wireless earbuds — there’s a promotion this weekend,” the Supervisor:
This requires genuine LLM reasoning. The Supervisor is not a router with a hardcoded lookup table — it interprets ambiguous instructions, surfaces missing parameters as clarifying questions, and makes branching decisions based on downstream agent outputs.
The Supervisor does not call data or computation tools directly. Its only job is to reason about the workflow.
In production, Amazon Bedrock Guardrails protects each agent’s LLM reasoning steps as a mandatory control, not an optional add-on. The Supervisor agent — which interprets natural-language requests and makes branching decisions that ultimately determine order quantities — runs behind a Guardrails configuration that enforces content filtering, denied topic policies, and grounding validation against the structured tool outputs. This prevents the Supervisor from hallucinating constraint overrides or generating purchase decisions outside its authorized scope. For implementation details, refer to Amazon Bedrock Guardrails.
The Preprocessing Agent loads raw data via deterministic tools and then applies LLM reasoning to decide how to prepare it for Chronos2.
The three load_* functions are plain Python — without LLM inference. The Preprocessing Agent’s LLM reasoning kicks in after the data is loaded, when it must decide which covariates to include. The Supervisor passes the user’s natural-language request (for example, “there’s a promotion this weekend”) down to the Preprocessing Agent as part of the task description, which signals that the promotion column must be included. But the agent also evaluates data quality: if promotion is sparsely populated or shows near-zero variance across the training period, the agent may exclude it and note the decision. A deterministic function does not make this call — it requires reading both the numbers and the business context together.
The Forecasting Agent calls the Chronos2 endpoint via a deterministic tool and then applies LLM reasoning to interpret the results.
call_chronos2, calculate_order_quantity, and validate_constraints are each deterministic functions. The Forecasting Agent’s LLM reasoning provides two things these tools cannot: anomaly contextualization (“day 7 P90/P50 ratio is 1.36 — above the 1.3 anomaly threshold, consistent with the promotional covariate for that day”) and a natural language rationale for the order recommendation (for example, “753 units covers a 5-day lead-time demand of 648 plus a 150-unit safety stock buffer, net of 45 current inventory”). The numbers in this rationale are drawn from data/product_config.json — the same values used in the Running the agent walkthrough later in this post.
The probabilistic output — P10, P50, and P90 quantiles — is central to inventory planning, not incidental. Ordering to the P50 (median) without any buffer would mean running out of stock roughly half the time, which is why safety stock exists as a separate parameter. calculate_order_quantity uses the P50 forecast for expected lead-time demand, and the safety_stock parameter in the product config absorbs the uncertainty between P50 and P90 (teams typically tune safety stock toward a target service level such as P90 or P95). For products with high P90/P50 ratios — indicating volatile or promotion-driven demand — the Forecasting Agent flags the anomaly explicitly so the Reporting Agent can surface elevated uncertainty to the buyer rather than hiding it behind a single order number.
The violations array returned by validate_constraints is what makes the conditional retry loop actionable. When the constraint check fails, the array contains a human-readable string per violated constraint (for example, "Exceeds budget ($9412.50/$500.00)"), which the Forecasting Agent passes up to the Supervisor. The Supervisor uses this specific message, not a generic “validation failed” signal. Based on the violation details, it decides whether to re-invoke the Forecasting Agent with adjusted constraints or escalate to the user.
The Reporting Agent consumes the structured output from the Forecasting Agent and produces the final deliverables: a visualization and a persisted decision record. The tools are deterministic. The agent provides the natural language summary that makes the output actionable for a business user.
The preceding coordinator diagram is a behavioral view. Structurally, this implementation follows the Agents-as-Tools pattern: the Supervisor is a single Strands agent whose tool list contains the three specialist agents, each wrapped as a @tool. There is no explicit multi-node graph in the Strands SDK’s orchestration layer — the graph is a single Supervisor node with max_node_executions=10 (enough headroom for the base preprocessing → forecasting → reporting sequence plus up to three retry iterations, then a safety stop). Orchestration happens inside the Supervisor’s tool-use loop.
This matters for context isolation. Each specialist @tool invocation spawns a fresh Strands agent with its own context window, own system prompt, and its own tool subset. Results return to the Supervisor as a compressed labeled-output block (a CLUES_FORMAT envelope defined by the Strands SDK) that carries the specialist’s labeled output instead of its full reasoning transcript — so the Supervisor sees labeled deltas and its context stays bounded as the workflow grows.
The preceding Strands agent definitions run as local Python processes with Amazon Bedrock as the LLM backbone. To move them to managed execution, package the Supervisor entry point as an AgentCore application:
Deploy with the AgentCore CLI: agentcore deploy. AgentCore wraps each invocation in an isolated microVM, injects session context for short-term memory reads and writes, and streams agent traces automatically to Amazon CloudWatch — no additional instrumentation required. Full end-to-end deployment is a sequence of steps — CDK infrastructure, Gateway with save_decision registered, Cedar policies, Memory resource, Runtime package, and post-deploy Evaluations setup — orchestrated by a single deployment script.
The sequential chain is enforced by data dependency: the Forecasting Agent cannot run without the preprocessed payload. The Reporting Agent cannot run without a validated order decision.
The conditional retry loop handles constraint violations as a first-class workflow state rather than an error condition. When validate_constraints returns approved: false, the Forecasting Agent surfaces the violation explanation. The Supervisor interprets it, adjusts the constraint parameters (for example, reducing the order to fit within the budget cap), and re-invokes the Forecasting Agent. The Supervisor tracks iteration count in the short-term session memory of AgentCore and escalates to the user if three iterations do not converge — avoiding silent infinite loops.
The most significant cost decision is the SageMaker deployment mode for the Chronos2 endpoint.
| Configuration | Monthly Cost | Cold Start | Recommendation |
| Always-on ml.g5.2xlarge | ~$1,091 | None | High-frequency real-time use |
| Serverless Inference | ~$15 | 30–60 seconds | Batch / scheduled forecasting |
For batch inventory forecasting — a nightly or weekly job — a 30–60 second cold start is fully acceptable. Serverless Inference reduces inference costs by over 98% compared to an always-on GPU endpoint.
The AgentCore Runtime follows the same scale-to-zero cost model: microVM isolation per session, up to 8-hour session duration, and no idle cost between workflow runs. Both the agent runtime and the inference endpoint scale to zero when not in use.
How the numbers break down. The $15/month Serverless estimate assumes approximately 500 invocations averaging eight seconds of compute each, priced against the ml.g5.xlarge Serverless rate, with storage and inter-service data transfer excluded (the forecast payload and response each sit well under a megabyte). The $1,091/month always-on estimate is a ml.g5.2xlarge endpoint running 24×7, which pays for idle GPU memory every hour the agent is not forecasting. For nightly or weekly batch jobs, the duty cycle makes Serverless the correct default. For latency-sensitive real-time forecasting with a high invocation rate, the break-even point is roughly a few thousand invocations per month and tips toward the always-on endpoint.
This section examines the key design decisions behind the system: how to decompose work into agents versus tools, how agents communicate through data contracts, and how to handle failures and control costs.
The most consequential design decision in a multi-agent system is not which framework to use or how many agents to create — it is deciding, for each unit of work, whether it requires an LLM or a deterministic function.
The practical test:
“If I fix the input, will the output always be the same?”
@tool. The LLM calls it. The function does the work.Applying this test to every component in this system:
| Component | Output deterministic? | Implementation |
| Parse user’s natural-language request | No | Supervisor Agent reasoning |
| Load file from S3 | Yes | @tool |
| Select covariates based on data quality + user context | No | Preprocessing Agent reasoning |
| Invoke Chronos2 endpoint | Yes | @tool |
| Interpret forecast anomalies in business context | No | Forecasting Agent reasoning |
| Calculate order quantity from formula | Yes | @tool |
| Check order against warehouse/budget constraints | Yes | @tool |
| Generate rationale for order recommendation | No | Forecasting Agent reasoning |
| Generate matplotlib chart | Yes | @tool |
| Write JSON to S3 | Yes | @tool |
| Decide whether to retry with adjusted constraints or escalate to the user | No | Supervisor Agent reasoning |
| Summarize results in business language | No | Reporting Agent reasoning |
| Score forecast accuracy against actual sales | Yes | Code-based evaluator (AWS Lambda @tool-equivalent) |
The pattern: deterministic computation belongs in tools. Judgment, interpretation, and context-dependent recommendation belong in agent reasoning. Wrapping a deterministic formula in an LLM agent adds cost, latency, and non-determinism with no benefit. Asking a deterministic function to interpret “there’s a promotion next week” will fail.
This framework also prevents scope creep. When a new requirement arrives — “add a second validation check for seasonal buffer stock” — the answer is clear: add a @tool, not a new agent.
Each agent in the sequential chain outputs a typed JSON structure that the next agent consumes. A representative contract between the Forecasting Agent and the Reporting Agent:
The contract is explicit about which covariates were actually used (the Preprocessing Agent’s decision is visible and auditable), includes the order rationale as a first-class field, and carries anomaly flags in structured form rather than buried in prose. This makes the contract machine-readable for downstream tools and human-readable for debugging.
Implicit coupling through unstructured text — where one agent returns a paragraph and the next tries to extract numbers from it — is the most common failure mode in multi-agent systems. Explicit JSON contracts prevent it.
Three failure strategies, matched to component criticality:
Per-agent retry with backoff: Applied to load_* tools (S3 transient errors) and call_chronos2 (SageMaker Serverless cold starts). The Forecasting Agent’s tool handles cold starts with up to 3 retries at 30-second intervals, catching ModelNotReadyException transparently before surfacing an error to the agent.
Graceful degradation: If the Preprocessing Agent determines that a covariate column is too sparse to be reliable, it proceeds without that covariate and notes the degradation in the output contract. The Forecasting Agent receives a valid — if potentially less accurate — input and continues. The Reporting Agent surfaces the degradation flag in its summary.
Failure isolation for non-critical paths: generate_forecast_chart and save_decision_record run within the Reporting Agent. If chart generation fails (rendering error, S3 write timeout), the Reporting Agent can still complete its primary output: the natural language summary and the decision record. The order recommendation is never blocked by a visualization failure.
The agent versus tool framework draws one line: is the output determined by the input? A second line sits underneath it, and it matters just as much for a production system: does this tool cross a trust, durability, or cost-of-mistake boundary?
The practical test:
“If the agent hallucinates and calls this tool wrongly, does the mistake propagate to external systems or stop at the agent’s memory?”
@tool. The agent’s IAM role and Strands type system already bound it. Adding Gateway adds latency and cost with no safety gain.Applying this to every tool in the system:
| Tool | Side effect at failure? | Placement |
load_sales |
None (read only) | In-process @tool |
load_inventory |
None (read only) | In-process @tool |
load_product_config |
None (read only) | In-process @tool |
invoke_chronos2 |
External SageMaker call, no state mutation | In-process @tool |
calculate_order |
None (pure function) | In-process @tool |
validate_constraints |
None (pure function) | In-process @tool |
generate_forecast_chart |
S3 write, retryable, not authoritative | In-process @tool (Failure Handling § covers this isolation) |
save_decision |
S3 write that becomes the authoritative order record | Gateway + Cedar policies |
Of the eight tools in this system, exactly one needs Gateway. That proportion is the norm, not the exception: most “tools” in an agent system are reads and pure functions where Gateway adds cost without adding safety. The services AgentCore provides are opt-in for a reason — pick the one sub-service that guards each distinct boundary, not all six for every tool.
A natural follow-up: generate_forecast_chart also writes to S3 — why is it in-process rather than behind the Gateway? Because the chart is a visualization, not a decision of record. If it fails or is silently wrong, the order recommendation still stands and the write can simply be retried. save_decision is the opposite: once the decision record is persisted, downstream systems treat the order as real. The Gateway earns its place where a faulty write would create downstream inconsistency, not where it would at worst inconvenience a buyer.
The Gateway Lambda (mcp/lambda/handler.py) exposes save_decision as an MCP-compatible tool endpoint. Infrastructure complexity stays proportional to the actual policy surface, not to the number of tools the agent calls.
Beyond infrastructure cost, the four-agent design enables explicit token budget allocation. Each agent’s context window is bounded by its single responsibility:
| Agent | Context window contains | Does NOT contain |
| Supervisor | User request, execution plan, and compressed CLUES_FORMAT blocks returned by specialists |
Raw CSV, Chronos2 forecast arrays |
| Preprocessing | Raw CSV rows, product config | Conversation history |
| Forecasting | Formatted Chronos2 payload, model output | Raw CSV, full history |
| Reporting | Validated order decision, rationale | Raw data, Chronos2 payload |
This partitioning keeps per-run LLM inference cost flat as catalog size scales. A monolithic agent carrying all data, all conversation history, and all intermediate results through every step would accumulate a context window that grows with catalog size and conversation length — and incur that cost on every invocation.
The two decision frameworks discussed earlier (agent versus tool, in-process versus gateway) leave us with a clear map of where each AgentCore sub-service earns its place in this system. The following table maps each service to a single production concern. The paragraphs that follow explain why that service is the right answer to that concern — not only what the service does.
| Production concern | AgentCore service | What it replaces |
| Where does the agent run? | Runtime | Always-on container hosting |
| What writes are allowed to reach external systems? | Gateway + Policy | API Gateway + custom authz middleware |
| What does the agent carry across sessions? | Memory | Redis + bespoke retrieval code |
| Can we reconstruct why a decision was made? | Observability | Custom OTEL setup + CloudWatch wiring |
| How do we know the agent is still behaving after deployment? | Evaluations | Offline eval scripts + manual QA |
Runtime guards where agents execute. AgentCore Runtime hosts the Supervisor inside a per-session microVM with up to 8-hour session duration and zero idle cost between runs. For batch inventory forecasting — weekly or nightly jobs — paying for an always-on container is waste. Runtime provides session isolation and scale-to-zero-between-sessions as the default behavior, so the team does not have to engineer either separately.
Gateway and Policy guard what writes are allowed to reach external systems. Gateway is designed to be paired with Policy: Gateway validates who is calling (JWT from Cognito), Policy decides whether this specific call is allowed (Cedar evaluates principal, action, resource, and the full tool-call payload via context.input). Without Policy, Gateway would grant each authenticated caller access to each registered tool.
Because only save_decision is registered on the Gateway, the authorization surface is scoped to the single point where an order becomes a persisted record — the last gate before downstream systems (dashboards, ERP integration) treat the decision as real. Two Cedar policies apply:
allow_write_reporting_only — save_decision may only be invoked by the Reporting workflow’s identity.deny_high_value_orders — any save_decision call where context.input.budget_used > 50000 is denied, regardless of principal:Putting the high-value deny anywhere upstream — say, on calculate_order — would be ineffective: the agent could re-run the calculation until it passed, and the denial wouldn’t map to any durable effect. The policy is meaningful only at the write boundary.
Memory guards what the agent carries across sessions. AgentCore Memory supports three long-term strategies. This system uses two of them: semanticMemoryStrategy for SKU-level forecast accuracy history and userPreferenceMemoryStrategy for constraint overrides such as “this buyer always sets a 20% higher safety stock for electronics.” summaryMemoryStrategy is not used here because session-level summarization adds little for a structured forecast workflow. The Strands AgentCoreMemorySessionManager wires these into the Supervisor with no bespoke retrieval code.
Observability guards whether we can reconstruct why a decision was made. Each agent invocation — inputs, outputs, tool calls, retry attempts, latency — is traced automatically and streamed to Amazon CloudWatch. For an inventory pipeline, each order decision acquires a complete, auditable trail: which agent ran, which tools were called, what Chronos2 returned, and why the Forecasting Agent recommended a specific quantity. CloudWatch Logs Insights queries surface operational patterns like “which SKUs trigger the most constraint violations” or “which products show the highest P90/P50 forecast uncertainty” — directly informing improvements to business rules and covariate selection without re-running the pipeline.
Evaluations guards whether the agent is still behaving after deployment. AgentCore Evaluations runs online quality monitoring against a sampled portion of production traffic (configurable. This system samples 100% during initial rollout). Two built-in evaluators — Builtin.GoalSuccessRate and Builtin.Helpfulness — provide generic quality signal, and a custom LLM-as-a-Judge evaluator scores constraint compliance on a 3-point scale:
The scale deliberately rewards agents that flag violations rather than hide them. This is the failure mode the retry loop is designed to prevent, and the evaluator is designed to detect. Without this rubric, an agent that quietly truncates orders to fit the budget scores the same as one that escalates to the user — even though only the second is safe for production. The 3-point rubric catches the failure mode where an agent hides a constraint violation. The next subsection adds a second evaluator for the complementary question — was the forecast itself accurate?
The throughline: AgentCore is not a monolithic “agent platform” you either adopt or refuse. It is a set of services, each addressing one specific concern that production agent systems face. Picking the right service for each concern — and not stretching one service to cover two — is the architecture work. The preceding map is the output of that work for this system. The map for a different domain (customer support, code generation, research) will look different, but the exercise of drawing one is the same.
The Evaluations described earlier answer one question: did the agent behave safely? That is necessary but not sufficient. For an inventory system, a second question is equally important: was the forecast the agent produced actually accurate? An agent that flags each constraint violation correctly is still useless if its P50 forecast is systematically off by 30%.
These two questions map to the two evaluator types that AgentCore Evaluations supports. The choice between them follows the same logic as the agent versus tool framework from the architecture deep dive, one layer up: if the correct output is fully determined by the inputs, use a deterministic function, not an LLM. A forecast accuracy score is a calculation, not a judgment call.
The pattern: agent behavior needs subjective scoring. Forecast accuracy needs arithmetic. Use the evaluator type that matches the question, not the one that feels more sophisticated.
LLM-as-a-Judge evaluators score subjective dimensions — did the agent flag the violation, was the rationale coherent, was the response helpful. Good for behavior, wrong tool for arithmetic.
Code-based evaluators invoke a Lambda function against the session trace with optional ground truth injected via evaluationReferenceInputs. Good for deterministic metrics — WAPE, signed bias, pinball loss, coverage — that have a correct numeric answer.
The evaluator is a Lambda function that reads the Chronos2 forecast from the session trace, pairs each horizon day with the actual sales value supplied as ground truth, and returns WAPE as the primary numeric score alongside signed bias, pinball loss at P90, and P10–P90 coverage.
A note on thresholds. WAPE < 15 percent is a common ‘strong baseline’ reference for retail demand at SKU-week granularity, anchored by the M5 forecasting competition. Treat the cut-offs as starting values and tune per catalog. The coverage target (0.75–0.85 for a P10–P90 band) and the pinball loss together tell you whether the quantiles are calibrated: if coverage drifts below the band year-over-year while point WAPE stays flat, the model has grown over-confident and the safety stock multiplier, not the point forecast, is the thing to revisit.
Two implementation notes worth flagging for readers reusing the evaluator. First, the signed-bias convention here is the SCM standard (positive = over-forecast), which matches Tracking Signal conventions used in most inventory-planning systems. Second, the pinball loss at P90 is asymmetric by design: under-coverage of the upper quantile is penalised 9× more than over-coverage, mirroring the asymmetric cost of stock-outs compared to carrying cost.
Register the evaluator once through the AgentCore control plane, then reference it by ARN in every session-level evaluation:
The 3-point behavior rubric runs online — every session, in real time — because its inputs (agent trace, tool outputs) exist at the moment the session ends. The accuracy evaluator is different. On the day the order decision is made, the “correct” demand for the next 14 days does not yet exist. It materialises one horizon later, as each forecast day passes and actual sales are recorded in the data warehouse.
The code-based evaluator handles this naturally. A nightly job collects sessions whose forecast horizon has fully elapsed, pulls actual sales from the data warehouse, and invokes the evaluator on-demand with evaluationReferenceInputs populated:
Scores stream into the same CloudWatch Evaluations namespace as the online evaluators, so the team queries behavior and accuracy through the same dashboards and alarms. A P50 forecast with four consecutive weeks of negative bias triggers the same operational response as a run of silent-violation sessions: investigate, fix, redeploy.
The preceding snippet is the on-demand path — one evaluator call per session, invoked explicitly after ground truth arrives. When you want the evaluator to run automatically against every session’s trace as it lands in CloudWatch, register it in an Online Evaluation Config:
Note what is not in the online list: the ForecastAccuracyEvaluator. Ground truth is not available at trace-emit time, so registering it online would produce HORIZON_MISMATCH errors on every invocation. The two cadences — online for behavior, on-demand for accuracy — are a consequence of the data arriving at different times, not a configuration preference.
| Evaluator | Type | Level | Cadence |
| Builtin.GoalSuccessRate | Built-in LLM-as-a-Judge | Session | Online, 100% sampled during rollout |
| Builtin.Helpfulness | Built-in LLM-as-a-Judge | Trace | Online, 100% sampled during rollout |
| ConstraintComplianceJudge (3-point rubric: silent / flagged / compliant) | Custom LLM-as-a-Judge | Session | Online, 100% sampled during rollout |
| ForecastAccuracyEvaluator (WAPE, signed bias, pinball@P90, P10–P90 coverage) | Custom Code-Based (Lambda) | Session | On-demand, once horizon + lead time elapse |
The first three evaluators guard how the agent acted. The fourth guards what the model was right about. Together they close the gap that either alone would leave open: an agent that behaves perfectly while quietly under-forecasting, or a model with excellent WAPE whose recommendations are silently truncated by an agent. Both failure modes are invisible to a single-layer evaluation. Both become visible when the two layers run side by side.
These evaluators only matter if they feed operational targets. For this system the targets are explicit: P95 end-to-end latency under 90 seconds for a batch-scheduled session, constraint-compliance rubric score of at least 2.0 on 95 percent of sessions (flagged violations count. Silent violations do not), and rolling 4-week WAPE under 20 percent across the top-20 SKUs by revenue. Each target has a CloudWatch alarm routed to oncall. The error budget — 5 percent of sessions scoring below 2.0 — gives the team room to iterate on prompts and constraints without treating every regression as a page.
Throughput at catalog scale. A full session for one SKU completes in roughly eight seconds end to end (Chronos2 Serverless cold path excluded, which amortises after the first call in a run). A 10,000-SKU nightly run finishes in under thirty minutes at roughly 100-way parallelism, bounded by the SageMaker Serverless concurrency quota. Per-run cost at that scale is on the order of a few dollars in Bedrock reasoning plus a few dollars in SageMaker inference — small enough that the daily-run cadence is a pricing choice, not a constraint.
After deploying all components, invoke the agent with a scenario that deliberately forces the conditional retry loop to fire. The following test case overrides the product’s default budget cap to $500 — well under what a full lead-time order would cost — so that the system’s response to constraint violation is observable end-to-end.
The agent executes the full pipeline and returns a structured recommendation. The following numbers derive from data/product_config.json (safety_stock = 150, lead_time_days = 5, min_order_quantity = 50, unit_cost = $12.50) and the Chronos2 P50 forecast with the promotion covariate active:
The behaviour at this point is the whole point of the design. Rather than silently truncating the order to whatever number fits the budget and creating a large stock-out, the Supervisor surfaces the three actionable options — raise the budget, accept the shortfall and pre-position expedited delivery, or delay the promotion — and asks the user to choose. This is the conditional retry loop doing its job: a constraint violation is treated as a workflow state requiring input, not as a silent failure.
Observability and Evaluations both capture this event for inspection afterwards. The CloudWatch trace shows each tool call in the retry loop, and the Evaluations custom evaluator scores this session at 2.0 (flagged violation), confirming the agent behaved as designed rather than silently failing.
To avoid incurring future charges, delete the resources you created during this walkthrough in the following order:
This architecture demonstrates that zero-shot forecasting and multi-agent automation are complementary abstractions that remove different categories of operational burden.
Chronos2 removes the ML pipeline. Adding a new SKU to the forecast requires no training job, no feature engineering, no model validation. The only inputs required are historical sales data and covariate values for the forecast horizon — both of which are standard operational data.
Multi-agent orchestration removes the manual workflow. Converting a demand forecast into a purchase order with business rule compliance, natural language rationale, and an audit trail requires coordinating judgment and computation across multiple steps. Four LLM agents handle the judgment. A set of deterministic tools handle the computation.
What you gain:
| Dimension | Traditional Approach | This Architecture |
| New product onboarding | Train new model (days–weeks) | Zero — Chronos2 zero-shot |
| Business rule change | Edit spreadsheet or monolith | Change one @tool |
| Failure recovery | Restart entire pipeline | Retry at the failed agent |
| Audit trail | Manual documentation | Every agent output is a structured JSON contract |
| LLM cost at scale | Unbounded (monolith carries all context) | Bounded per agent by single-responsibility context |
| Forecast explanation | Raw numbers | Natural language rationale with anomaly flags |
| Forecast quality signal | Manual backtest scripts, ad-hoc | Code-based evaluator scores every session |
The patterns described here — the agent versus tool, in-process versus gateway, and subjective versus deterministic evaluation decision frameworks, structured JSON contracts between agents, conditional retry as a first-class workflow state, and mapping each AgentCore service to one production concern — apply beyond inventory management to any domain where deterministic computation and contextual judgment must work together.
To get started, deploy the CDK stack in your AWS account using the infrastructure patterns described in the technical implementation section, then run the constraint-violation walkthrough with your own product data to see the full agent coordination in action.
Cost figures for SageMaker Serverless Inference are estimates based on us-east-1 pricing and assume approximately 500 inference calls per month. Actual costs vary by Region and usage pattern.
Post Syndicated from Brendan Watters original https://www.rapid7.com/blog/post/pt-metasploit-wrap-up-goes-to-sixteen

Another banger from Metasploit with sixteen new modules, including ten exploit modules, with five on the CISA KEV list. Cisco, Papercut, Sonicwall, Jetbrains, and Langflow all have exploit modules, and not to be outdone, we even have a Metasploit scanner to watch the watchers!
Authors: Bourbon Offensive Security Services and Jean-Marie Bourbon
Type: Auxiliary
Pull request: #21739 contributed by kmkz
Path: scanner/http/elasticsearch_tika_xfa_xxe
CVE reference: CVE-2025-66516
Description: Adds an auxiliary scanner module for CVE-2025-54988/CVE-2025-66516. The module validates an XML External Entity (XXE) vulnerability in Apache Tika’s XFA parser exposed through the Elasticsearch attachment ingest processor.
Authors: Benoit Hua, Franck Chevalier, Julien Voisin, and ka3n1x
Type: Auxiliary
Pull request: #21791 contributed by jvoisin
Path: scanner/http/spip_annee_sqli
Description: Adds modules/auxiliary/scanner/http/spip_annee_sqli.rb which exploits a blind SQL injection in SPIP’s date column escaping logic.
Author: h00die
Type: Auxiliary
Pull request: #21551 contributed by h00die
Path: scanner/msf/handler_detect
Description: Adds a scanner module to enumerate ports on a host and determine if they’re a Metasploit Reverse Handler or not, and if they are, what kind of shell they were going to land.
Author: Pushpender Rathore
Type: Auxiliary
Pull request: #21709 contributed by Pushpenderrathore
Path: server/relay/esc8_kerberos
CVE reference: CVE-2026-20929
Description: This introduces native Kerberos authentication relay capabilities to the framework’s relay stack. It includes a new auxiliary module (esc8_kerberos) that exploits CVE-2026-20929 by targeting AD CS Web Enrollment (ESC8). The module captures an SMB2 AP-REQ from a coerced client and seamlessly replays the authentication to the target certificate server over HTTP. This chain ultimately allows an attacker to issue a certificate for the coerced victim and obtain a valid Kerberos TGT without requiring their credentials.
Author: Massimo Bertocchi
Type: Evasion
Pull request: #21642 contributed by litemars
Path: linux/x64/sandbox_gate
Description: Adds a Linux x64 sandbox‑evasion module that performs lightweight runtime environment checks and aborts execution when a likely sandbox or VM is detected.
Authors: Arian Eidizadeh, Brandon Sakai, and Cale Black
Type: Exploit
Pull request: #21796 contributed by CyberAuth
Path: linux/http/cisco_fmc_auth_bypass_rce
CVE reference: CVE-2026-20079
Description: Adds a native Metasploit exploit module for CVE-2026-20079, an unauthenticated authentication bypass in Cisco Secure Firewall Management Center (FMC).
Authors: Adam Babis, William Perry, and sfewer-r7
Type: Exploit
Pull request: #21883 contributed by sfewer-r7
Path: linux/http/sonicwall_sma1000_couchdb_rce
CVE reference: CVE-2026-83549
Description: This adds an exploit module for the recent SonicWall SMA1000 zero-day exploit chain that was disclosed in the first week of September as being exploited in-the-wild. CVE-2026-83548 is an SSRF used to bypass auth. SMA1000-9427 is an RCE with low privileges via CouchDB read/write primitives. CVE-2026-83549 is a command injection in cmsSnmpTrap.sh for RCE with root privs. The patched version 12.5.0-02952 has been verified to successfully remediate this exploit chain.
Authors: Antoni Tremblay and sfewer-r7
Type: Exploit
Pull request: #21775 contributed by sfewer-r7
Path: multi/http/jetbrains_teamcity_rce_cve_2026_63077
CVE reference: CVE-2026-63077
Description: This introduces a new unauthenticated Remote Code Execution (RCE) exploit module for JetBrains TeamCity, targeting the vulnerability tracked as CVE-2026-63077. The module exploits an unsafe XStream deserialization flaw within the agent polling protocol to deliver and execute a one-shot JSP payload on the server. The module supports both Windows and Linux targets and features built-in cleanup logic to automatically unregister and remove the fake build agent created during the exploitation process.
Author: Richard Howe
Type: Exploit
Pull request: #21837 contributed by rmhowe425
Path: multi/http/langflow_auth_rce_cve_2026_19295
CVE reference: CVE-2026-19295
Description: Adds a new module targeting CVE-2026-19295, an authenticated remote code execution vulnerability impacting Langflow versions 1.10.0 and below.
Authors: Louay-075 and earthenvessel
Type: Exploit
Pull request: #21655 contributed by earthenvessel
Path: multi/http/mcpjam_inspector_rce
CVE reference: CVE-2026-23744
Description: This adds a new exploit module for CVE-2026-23744, an unauthenticated command execution vulnerability in MCPJam Inspector. The module targets the /api/mcp/connect endpoint. Vulnerable versions accept a JSON serverConfig object containing a command and args array, then use those values to start an MCP server. When MCPJam Inspector is exposed on a routable interface, an unauthenticated remote attacker can abuse this behavior to execute operating system commands as the user running MCPJam Inspector.
Author: sfewer-r7
Type: Exploit
Pull request: #21842 contributed by sfewer-r7
Path: multi/http/papercut_ng_external_user_lookup_rce
CVE reference: CVE-2026-82078
Description: Adds an exploit module for the recent PaperCut MF and PaperCut NG exploit chain (CVE-2026-81578 + CVE-2026-82078) that was reported last week as a zero-day being actively exploited in the wild.
Authors: Blackpoint Cyber, Horizon3.ai, Zach Hanley, and jheysel-r7
Type: Exploit
Pull request: #21825 contributed by jheysel-r7
Path: multi/http/simplehelp_oidc_auth_bypass_rce
CVE reference: CVE-2026-48558
Description: Adds an exploit module for CVE-2026-48558, an OIDC authentication bypass affecting SimpleHelp 5.5.0 through 5.5.15.
Author: Julien Voisin
Type: Exploit
Pull request: #21859 contributed by jvoisin
Path: multi/http/spip_autosave_rce
Description: Adds a module targeting an unauthenticated remote code execution vulnerability in SPIP <= 4.4.21 via the forum autosave session handler. The action=session endpoint lets any visitor store arbitrary PHP code in a session variable, which is then executed by the template engine when the article page is rendered. No CVE has yet been issued.
Authors: Avishek Sarkar, Bogyeom Lee, and Maksim Rogov
Type: Exploit
Pull request: #21834 contributed by vognik
Path: windows/http/nextjs_unauth_rce_cve_2026_75604
CVE reference: CVE-2026-75604
Description: Adds a module targeting CVE-2026-75604, a Remote Code Execution (RCE) vulnerability in Next.js applications hosted on Windows servers. Specifically crafted requests can execute arbitrary code on the target server running Next.js versions from 13.4.0 up to 15.5.24, and 16.0.0 up to 16.3.3.
Author: Emanuele Cervelli
Type: Exploit
Pull request: #21550 contributed by M4nu02
Path: windows/persistence/boot_verification_program
Description: Adds a Windows persistence module leveraging the registry key BootVerificationProgram.
Author: Emanuele Cervelli
Type: Exploit
Pull request: #21522 contributed by M4nu02
Path: windows/persistence/time_provider
Description: Adds a new persistence module that registers a custom Time Provider DLL under the W32Time service registry key.
You can find the latest Metasploit documentation on our docsite at docs.metasploit.com.
As always, you can update to the latest Metasploit Framework with msfupdate and you can get more details on the changes since the last blog post from GitHub:
If you are a git user, you can clone the Metasploit Framework repo (master branch) for the latest. To install fresh without using git, you can use the open-source-only Nightly Installers or the commercial edition Metasploit Pro.